真题解析2

题目

此题略有不同,由修改 Pod 变为修改 Deployment

Context

该 cluster 使用 containerd 作为 CRI 运行时。containerd 的默认运行时处理程序是 runc 。containerd 已准备好支持额外的运行时处理程序 runsc (gVisor) 。

Task

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

更新 namespace client 中的所有 Deployment 以在 gVisor 上运行。

你可以在 /home/candidate/KSMV00301/runtime-class.yaml 找到一个模版清单文件。

解析

RuntimeClass 官方文档:

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

配置 RuntimeClass

# vim gVisorRuntimeClass.yaml
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
  # 用来引用 RuntimeClass 的名字
  # RuntimeClass 是一个集群层面的资源
  name: untrusted
# 对应的 CRI 配置的名称
handler: runsc

kubectl create -f gVisorRuntimeClass.yaml

配置 Deployment 的 RuntimeClass

kubectl edit deploy workload1 -n client

apiVersion: v1
kind: Deployment
metadata:
  labels:
    app: workload1
  name: workload1
  namespace: client
spec:
  replicas: 3
  selector:
    matchLabels:
      app: workload1
  template:
    metadata:
      labels:
        app: workload1
    spec:
      runtimeClassName: untrusted # 添加此项配置
      containers:
      - image: nginx
        imagePullPolicy: Always
        name: nginx

验证

Last updated