使用yaml文件指定 kata 安全容器配置相关参数

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

验证完毕

参考文档:

https://github.com/kata-containers/kata-containers/blob/main/docs/use-cases/using-Intel-QAT-and-kata.md

kata-containers/how-to-set-sandbox-config-kata.md at main · kata-containers/kata-containers · GitHub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值