我试图指定使用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任何建议都将不胜感激。谢谢!
发布于 2020-08-13 23:35:14
虽然runc能够创建容器,但它是一个相当低级的组件。我们所知的大多数容器运行时工具实际上在某种程度上依赖于它。This answer to another question gives a great overview of it。
Kubernetes中针对特定容器运行时的RuntimeClass功能要求它在本地节点上实现容器运行时接口(共享链接的“设置”部分简要介绍了这一点)。我做了一些快速的研究,没有任何迹象表明runc正在直接实现CRI。如果是,Kubernetes将跳过您访问Docker的过程;它将使用该接口直接从kubelet与另一个组件通信。因此,检查Docker设置无助于查看runc是否是可行的Kubernetes容器运行时。
所以,你应该回顾一下你为什么要这样做- runc可能已经在你的默认容器rumtime堆栈中使用了,而你可能并没有意识到它。Kubernetes有文档for alternative container runtimes,如果你正在寻找比Docker更轻量级的东西,你可以考虑安装这些文档。
https://stackoverflow.com/questions/63391524
复制相似问题