1、指定kata-container使用的配置文件
k8s 通过yaml 启动安全容器时默认的kata配置文件是/etc/kata-containers/configuration.toml
为了在yaml文件中指定特定的 configuration.toml,不使用默认路径的配置文件,启动kata 运行时配置文件 配置方法如下:
k8s 默认使用kata 配置文件的路径是
查看系统默认的配置路径
# kata-runtime env
...
[Runtime]
Path = "/usr/local/bin/kata-runtime"
Debug = false
Trace = false
DisableGuestSeccomp = true
DisableNewNetNs = false
SandboxCgroupOnly = false
[Runtime.Config]
Path = "/etc/kata-containers/configuration.toml" //默认使用的配置文件
[Runtime.Version]
OCI = "1.0.2-dev"
[Runtime.Version.Version]
Semver = "2.4.1"
Commit = "67d67ab66dcd20e33d70e7e5241f1c26b24f66da"
Major = 2
Minor = 4
Patch = 1
...
修改containerd 的配置文件
$ cat /etc/containerd/config
...
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.kata]
runtime_type = "io.containerd.kata.v2"
pod_annotations = ["io.katacontainers.*"] #添加项1
container_annotations = ["io.katacontainers.*"] #添加项2
...
ubuntu-kata.yaml文件如下:
apiVersion: v1
kind: Pod
metadata:
#Pod的名称,全局唯一
name: myubuntu-kata
annotations:#config_path是我自己修改好的kata的配置路径
io.katacontainers.config_path: "/root/App/myubuntu/configuration.toml"
spec:
containers:
#容器名称
- name: myubuntu-kata
#容器对应的Docker Image
image: ubuntu:20.04
command: [ "/bin/bash", "-c", "--" ]
args: [ "while true; do sleep 3600; done;" ]
securityContext:
privileged: true
runtimeClassName: kata
在/root/App/myubuntu/configuration.toml 配置文件中,修改好你自己指定的参数。
我自己修改的参数内容如下:
启动安全容器:
kubectl apply -f ubuntu-kata.yaml
验证启动容器后检查启动容器的参数:
红色框框代表kata 配置文件configuration.toml qemu启动命令行参数修改成功。
2、yaml文件指定Hypervisor Options
在1的基础上,还需要在kata 配置文件(/etc/kata-containers/configuration.toml)使能enable_annotations
使能方法:
sed -i 's/enable_annotations\s=\s\[\]/enable_annotations = [".*"]/' /etc/kata-containers/configuration.toml
使能后/etc/kata-containers/configuration.toml配置文件为,红色框框里内容enable_annotations = [".*"]
测试的yaml文件如下:
apiVersion: v1
kind: Pod
metadata:
#Pod的名称,全局唯一
name: myubuntu-kata
annotations:
#io.katacontainers.config_path: "/root/App/myubuntu/configuration.toml"
io.katacontainers.config.hypervisor.default_vcpus: "9"//指定默认使用vcpu个数
io.katacontainers.config.hypervisor.default_max_vcpus: "16" //kata虚拟机中最大vcpu个数,包含后期hotplug的
spec:
containers:
#容器名称
- name: myubuntu-kata
#容器对应的Docker Image
image: ubuntu:20.04
command: [ "/bin/bash", "-c", "--" ]
args: [ "while true; do sleep 3600; done;" ]
securityContext:
privileged: true
runtimeClassName: kata
启动kata 安全容器kubectl apply -f ubuntu-kata.yaml
验证启动后修改的参数 maxcpus=16 -smp 9
验证完毕
参考文档:
kata-containers/how-to-set-sandbox-config-kata.md at main · kata-containers/kata-containers · GitHub