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。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务