如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
kata-deploy 镜像包含运行 Kata Containers 所需的所有二进制文件和制品,并提供参考 DaemonSets,可用于在运行中的 Kubernetes 集群上安装 Kata Containers。注意,通过 DaemonSets 安装 katacontainers.io/kata-runtime 仅在节点使用 containerd 或 CRI-O CRI-shims 时成功。
安装最新镜像
最新镜像包含预发布和候选发布内容。如需稳定版本,请使用"稳定"说明。
sh$ kubectl apply -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-rbac/base/kata-rbac.yaml $ kubectl apply -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml
安装稳定镜像
稳定镜像包含最新稳定版本内容。
注意,若使用仓库的标记版本,稳定镜像将匹配该版本。例如,若使用 kata-deploy.yaml 文件的 2.2.1 标记版本,则会部署 2.2.1 版本的 kata 运行时。
sh$ kubectl apply -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-rbac/base/kata-rbac.yaml $ kubectl apply -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-deploy/base/kata-deploy-stable.yaml
对于 k3s 集群,执行:
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
确保 kata-deploy 就绪
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 https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/runtimeclasses/kata-runtimeClasses.yaml
以下 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 https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/examples/test-deploy-kata-clh.yaml
要使用 kata-fc 运行示例:
sh$ kubectl apply -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/examples/test-deploy-kata-fc.yaml
要使用 kata-qemu 运行示例:
sh$ kubectl apply -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/examples/test-deploy-kata-qemu.yaml
删除测试 Pod:
sh$ kubectl delete -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/examples/test-deploy-kata-clh.yaml $ kubectl delete -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/examples/test-deploy-kata-fc.yaml $ kubectl delete -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/examples/test-deploy-kata-qemu.yaml
移除最新镜像
sh$ kubectl delete -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml $ kubectl -n kube-system wait --timeout=10m --for=delete -l name=kata-deploy pod
确保 kata-deploy 已删除后,清理集群:
sh$ kubectl apply -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml
清理 DaemonSet 将运行一次,清理节点标签,此过程最多需要 5 分钟。
之后,删除清理 DaemonSet、添加的 RBAC 和运行时类:
sh$ kubectl delete -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml $ kubectl delete -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-rbac/base/kata-rbac.yaml $ kubectl delete -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/runtimeclasses/kata-runtimeClasses.yaml
移除稳定镜像
sh$ kubectl delete -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-deploy/base/kata-deploy-stable.yaml $ kubectl -n kube-system wait --timeout=10m --for=delete -l name=kata-deploy pod
确保 kata-deploy 已删除后,清理集群:
sh$ kubectl apply -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-cleanup/base/kata-cleanup-stable.yaml
清理 DaemonSet 将运行一次,清理节点标签,此过程最多需要 5 分钟。
之后,删除清理 DaemonSet、添加的 RBAC 和运行时类:
sh$ kubectl delete -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-cleanup/base/kata-cleanup-stable.yaml $ kubectl delete -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-rbac/base/kata-rbac.yaml $ kubectl delete -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/runtimeclasses/kata-runtimeClasses.yaml
用于创建在 DaemonSet 中部署的容器镜像的 Dockerfile 在此提供。该镜像包含运行 Kata Containers 所需的所有必要制品,均从 https://github.com/kata-containers/kata-containers/releases 获取。
主机制品:
cloud-hypervisor、firecracker、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,以方便为节点应用标签。
Kata 部署 DaemonSet
此 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。
Kata 清理 DaemonSet
当节点具有标签 katacontainers.io/kata-runtime=cleanup 时,此 DaemonSet 运行。它会移除 katacontainers.io/kata-runtime 标签,并重启 CRI-O 或 containerd 的 systemctl 守护进程。由于无法在 Kata 安装程序 DaemonSet 的 preStopHook 期间执行这些重置,因此需要此最终清理 DaemonSet。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务