CKS 考试题整理 (11)-沙箱运行容器gVisor

发布时间 2023-06-16 16:07:16作者: 打工人,打工魂

Context

该 cluster使用 containerd作为CRI运行时。containerd的默认运行时处理程序是runc

containerd已准备好支持额外的运行时处理程序runsc (gVisor)。

 

Task

使用名为runsc的现有运行时处理程序,创建一个名为untrusted 的RuntimeClass。

更新 namespace server中的所有Pod以在gVisor上运行。

 

您可以在 /cks/gVisor/rc.yaml中找到一个模版清单

 

参考资料

https://kubernetes.io/zh-cn/docs/concepts/containers/runtime-class/

 

解答

切换集群

kubectl config use-context KSMV00301

 

  1. 创建 RuntimeClass
vim /cks/gVisor/rc.yaml

修改或添加如下内容

apiVersion: node.k8s.io/v1 # 检测是否正确,如果不正确需要修改

kind: RuntimeClass

metadata:

name: untrusted # 用来引用 RuntimeClass 的名字,RuntimeClass 是一个集群层面的资源

handler: runsc # 对应的 CRI 配置的名称

 

创建

kubectl apply -f /cks/gVisor/rc.yaml

 

检查

kubectl get RuntimeClass

  1. 将命名空间为 server 下的 Pod 引用 RuntimeClass。

考试时,3个Deployment 下有3个Pod,修改3个deployment 即可。

kubectl -n server get deployment

 

编辑 deployment

kubectl edit -n server deployment/busybox-run

 

修改如下内容

spec: # 注意找到有containers 字段的spec

runtimeClassName: untrusted # 添加这一行

containers:

- image: nginx:1.9

imagePullPolicy: ifNotPresent

name: run-test