katadocker/kata-deploykata-deploy 镜像包含运行 Kata Containers 所需的所有二进制文件和制品,并提供参考 DaemonSets,可用于在运行中的 Kubernetes 集群上安装 Kata Containers。注意,通过 DaemonSets 安装 katacontainers.io/kata-runtime 仅在节点使用 containerd 或 CRI-O CRI-shims 时成功。
最新镜像包含预发布和候选发布内容。如需稳定版本,请使用"稳定"说明。
sh$ kubectl apply -f [***] $ kubectl apply -f [***]
稳定镜像包含最新稳定版本内容。
注意,若使用仓库的标记版本,稳定镜像将匹配该版本。例如,若使用 kata-deploy.yaml 文件的 2.2.1 标记版本,则会部署 2.2.1 版本的 kata 运行时。
sh$ kubectl apply -f [***] $ kubectl apply -f [***]
sh$ GO111MODULE=auto go get github.com/kata-containers/kata-containers $ cd $GOPATH/src/github.com/kata-containers/kata-containers/tools/packaging/kata-deploy $ kubectl apply -k kata-deploy/overlays/k3s
shkubectl -n kube-system wait --timeout=10m --for=condition=Ready -l name=kata-deploy pod
工作负载通过在 Pod 规范中设置适当的 runtimeClass 对象来指定要使用的运行时。提供的 runtimeClass 示例定义了节点选择器,以匹配节点标签 katacontainers.io/kata-runtime:"true",确保工作负载仅调度到已安装 Kata Containers 的节点上。
runtimeClass 是 Kubernetes 中的内置类型。要应用每个 Kata Containers runtimeClass:
sh$ kubectl apply -f [***]
以下 YAML 片段显示如何指定工作负载应使用 Cloud Hypervisor 的 Kata:
yamlspec: template: spec: runtimeClassName: kata-clh
以下 YAML 片段显示如何指定工作负载应使用 Fire***er 的 Kata:
yamlspec: template: spec: runtimeClassName: kata-fc
以下 YAML 片段显示如何指定工作负载应使用 QEMU 的 Kata:
yamlspec: template: spec: runtimeClassName: kata-qemu
要使用 kata-clh 运行示例:
sh$ kubectl apply -f [***]
要使用 kata-fc 运行示例:
sh$ kubectl apply -f [***]
要使用 kata-qemu 运行示例:
sh$ kubectl apply -f [***]
删除测试 Pod:
sh$ kubectl delete -f [***] $ kubectl delete -f [***] $ kubectl delete -f [***]
sh$ kubectl delete -f [***] $ kubectl -n kube-system wait --timeout=10m --for=delete -l name=kata-deploy pod
确保 kata-deploy 已删除后,清理集群:
sh$ kubectl apply -f [***]
清理 DaemonSet 将运行一次,清理节点标签,此过程最多需要 5 分钟。
之后,删除清理 DaemonSet、添加的 RBAC 和运行时类:
sh$ kubectl delete -f [***] $ kubectl delete -f [***] $ kubectl delete -f [***]
sh$ kubectl delete -f [***] $ kubectl -n kube-system wait --timeout=10m --for=delete -l name=kata-deploy pod
确保 kata-deploy 已删除后,清理集群:
sh$ kubectl apply -f [***]
清理 DaemonSet 将运行一次,清理节点标签,此过程最多需要 5 分钟。
之后,删除清理 DaemonSet、添加的 RBAC 和运行时类:
sh$ kubectl delete -f [***] $ kubectl delete -f [***] $ kubectl delete -f [***]
用于创建在 DaemonSet 中部署的容器镜像的 Dockerfile 在此提供。该镜像包含运行 Kata Containers 所需的所有必要制品,均从 Kata Containers 发布页面 获取。
主机制品:
cloud-hypervisor、fire***er、qemu-system-x86_64 及支持二进制文件containerd-shim-kata-v2kata-collect-data.shkata-runtime虚拟机制品:
kata-containers.img 和 kata-containers-initrd.img:从 Kata GitHub 发布页面获取vmlinuz.container 和 vmlinuz-virtiofs.container:从 Kata GitHub 发布页面获取kata-deploy 引入了两个 DaemonSet 以及一个 RBAC,以方便为节点应用标签。
此 DaemonSet 在节点上安装必要的 Kata 二进制文件、配置文件和虚拟机制品。安装完成后,DaemonSet 添加节点标签 katacontainers.io/kata-runtime=true,并重新配置 CRI-O 或 containerd 以注册三个运行时类:kata-clh(Cloud Hypervisor 隔离)、kata-qemu(QEMU 隔离)和 kata-fc(Fire***er 隔离)。最后,DaemonSet 重启 CRI-O 或 containerd。删除时,DaemonSet 移除 Kata 二进制文件和 VM 制品,并将节点标签更新为 katacontainers.io/kata-runtime=cleanup。
当节点具有标签 katacontainers.io/kata-runtime=cleanup 时,此 DaemonSet 运行。它会移除 katacontainers.io/kata-runtime 标签,并重启 CRI-O 或 containerd 的 systemctl 守护进程。由于无法在 Kata 安装程序 DaemonSet 的 preStopHook 期间执行这些重置,因此需要此最终清理 DaemonSet。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务