如何解决创建容器时Kubernetes不支持RuntimeHandler“ runc”
我试图指定使用Kubernetes部署的runtime
容器。我遵循this link中的指南并创建以下RuntimeClass
:
apiVersion: node.k8s.io/v1beta1
kind: RuntimeClass
metadata:
name: runc
handler: runc
# $ kubeclt get RuntimeClass
# NAME HANDLER AGE
# runc runc 59m
然后,我将Pod spec.runtimeClassName="runc"
设置好。但是,当使用Kubernetes部署它时,出现以下错误:
Warning FailedCreatePodSandBox 2m43s (x141 over 32m) kubelet,jetson1 Failed to create pod sandbox: rpc error: code = Unknown desc = RuntimeHandler "runc" not supported
我可以使用docker
和--runtime=runc
运行容器,而不会出现任何错误。但是当与K8s一起部署时,会发生错误。以下是我的docker info
:
Client:
Debug Mode: false
Server:
Containers: 11
Running: 5
Paused: 0
Stopped: 6
Images: 12
Server Version: 19.03.6
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: nvidia runc
Default Runtime: nvidia
Init Binary: docker-init
containerd version:
runc version:
init version:
Security Options:
seccomp
Profile: default
Kernel Version: 4.9.140-tegra
Operating System: Ubuntu 18.04.4 LTS
OSType: linux
Architecture: aarch64
CPUs: 4
Total Memory: 3.871GiB
Name: jetson1
ID: HLZ4:DQKM:J7YY:OMDN:JXXZ:PFL5:YJGT:DJBM:SMSL:UTZA:WCZ4:GUD4
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
任何建议将不胜感激。谢谢!
解决方法
尽管runc能够创建容器,但它是一个相当低级的组件。作为容器运行时,我们所知道的大多数工具实际上都以某种方式依赖它。 This answer to another question gives a great overview of it。
Kubernetes中针对特定conainer运行时的RuntimeClass功能要求它在本地节点上实现CRI(容器运行时接口)(共享链接的“设置”部分对此进行了简要讨论)。我进行了一些快速研究,没有暗示runc直接实现CRI。如果是这样,Kubernetes将像您一样跳过对Docker的访问。它会使用该接口直接从kubelet与另一个组件通信。因此,检查Docker设置无助于确定runc是否是可行的Kubernetes容器运行时。
因此,您应该查看为什么要执行此操作-默认容器rumtime堆栈中可能已经使用过runc,而您可能没有意识到。 Kubernetes有文档for alternative container runtimes,如果您要寻找比Docker更轻巧的东西,可以考虑安装这些文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。