Experimenting with Kata Containers on your Kubernetes cluster managed with Juju takes commands. From a recent post on the Ubuntu blog:
One of the fastest ways to get started with Kata Containers is to deploy it in the Charmed Kubernetes environment. Once you have Charmed Kubernetes up and running, there are just four commands to deploy this extension:
$ juju deploy cs:~containers/kata $ juju relate kata kubernetes-master $ juju relate kata kubernetes-worker $ juju relate kata:untrusted containerd:untrusted
The first one deploys the Kata Containers runtime, while the other ones configure Kubernetes services to use it. Such an approach is scalable even in clusters consisting of hundreds of nodes.
Once deployed, you can use the new runtime in a very intuitive way. First, create a RuntimeClass object:
$ echo <EOF >> kata.yaml apiVersion: node.k8s.io/v1beta1 kind: RuntimeClass metadata: name: kata handler: kata EOF $ kubectl create -f kata.yaml runtimeclass.node.k8s.io/kata created
Then you can refer it when creating a pod or deployment. Simply add a runtimeClassName parameter to the spec section of your YAML file and refer to the class you created. for example:
$ cat nginx-kata.yaml apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: nginx-kata name: nginx-kata spec: runtimeClassName: kata containers: - image: nginx name: nginx-kata resources: {} dnsPolicy: ClusterFirst restartPolicy: Never> status: {}
Now when creating the nginx-kata pod, it will be created using the Kata Containers runtime.