k8s学习-CKS真题-Runtime设置gVisor

目录

  • 题目
  • 环境搭建
  • 解题
  • 参考


题目

该 cluster 使用 containerd 作为 CRI 运行时。containerd 的默认运行时处理程序是 runc。
containerd 已准备好支持额外的运行时处理程序 runsc (gVisor)。
Task
使用名为 runsc 的现有运行时处理程序,创建一个名为 untrusted 的 RuntimeClass。
更新 namespace server 中的所有 Pod 以在 gVisor 上运行。
您可以在 /cks/gVisor/rc.yaml 中找到一个模版清单。

环境搭建

安装gVisor

  1. 使用以下命令下载gvisor安装包:
wget https://storage.googleapis.com/gvisor/releases/nightly/latest/runsc
  1. 将下载的文件重命名为runsc,并放在/usr/local/bin目录中:
mv runsc /usr/local/bin/runsc
  1. 为runsc文件赋予可执行权限:
chmod +x /usr/local/bin/runsc
  1. 运行以下命令以安装gvisor到docker:
/usr/local/bin/runsc install

k8s学习-CKS真题-Runtime设置gVisor_第1张图片
安装到containerd
由于我的集群版本已经是v1.25了,改为了containerd,所以需要修改一下配置

vim /etc/containerd/config.toml

添加以下内容到配置中,与runc对齐

[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runsc]
          runtime_type = "io.containerd.runsc.v1"

k8s学习-CKS真题-Runtime设置gVisor_第2张图片
重启containerd

systemctl daemon-reload
systemctl  restart containerd

在这里插入图片描述
创建命名空间server并添加pod

kubectl create ns server
kubectl run nginx --image=nginx --dry-run=client -o yaml > nginx.yaml
kubectl create -f nginx.yaml -n server

解题

创建运行时untrusted

# RuntimeClass 定义于 node.k8s.io API 组
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
  # 用来引用 RuntimeClass 的名字
  # RuntimeClass 是一个集群层面的资源
  name: untrusted
# 对应的 CRI 配置的名称
handler: runsc
kubectl create -f untrusted.yaml 

在这里插入图片描述
修改Pod内容

kubectl get pod nginx -n server -o yaml > nginx_runtime.yaml

添加

runtimeClassName: untrusted

k8s学习-CKS真题-Runtime设置gVisor_第3张图片
删除原来的再重建

kubectl delete po nginx -n server
kubectl create -f nginx_runtime.yaml -n server

在这里插入图片描述

参考

gVisor官网
k8s-运行时

更多k8s相关内容,请看文章:k8s学习-思维导图与学习笔记

你可能感兴趣的:(#,云原生安全,kubernetes,学习,runtime,gVisor,CKS)