kubernetes - 如何将 kubelet 作为 docker 容器运行

标签 kubernetes kubelet

我可以将 kubelet 作为基于 kubernetes v1.6.6 的 docker 容器运行吗?如果可以,如何创建镜像或从哪里获取镜像,以及如何运行该镜像?

以下是我的操作,但有一些问题。

Docker文件 来自 i71:5000/ubuntu:14.04 添加 iptables/usr/local/bin/iptables 添加 bin/kubelet/usr/local/bin/kubelet

docker 运行 sh #!/bin/庆典 docker rm -f $(docker ps -aq --filter "name=kubelet") docker 运行\ -d\ --重新启动=“总是”\ --net="主机"\ -v/data/kubernetes-cluster/ssl:/data/kubernetes-cluster/ssl\ -v/data/kubernetes-cluster/kube-conf:/data/kubernetes-cluster/kube-conf\ -v/data/kubernetes-cluster/log:/data/kubernetes-cluster/log\ -v/数据/kubelet:/var/lib/kubelet\ -v/etc/本地时间:/etc/本地时间\ -v/var/run/:/var/run/\ -v/var/日志/:/var/日志/\ --特权=真\ --名称 kubelet\ i71:5000/kubelet:v1.6.6\ /usr/本地/bin/kubelet\ --logtostderr=真\ --v=0\ --cgroup-driver=cgroupfs\ --api-servers=http://192.168.0.97:8080\ --docker-endpoint=http://127.0.0.1:4243\ --地址=192.168.0.97\ --hostname-override=192.168.0.97\ --allow-privileged=true\ --pod-infra-container-image=i71:5000/pod-infrastructure:rhel7\ --cluster-dns=10.3.0.2\ --experimental-bootstrap-kubeconfig=/data/kubernetes-cluster/kube-conf/bootstrap.kubeconfig\ --kubeconfig=/data/kubernetes-cluster/kube-conf/kubelet.kubeconfig\ --require-kubeconfig\ --cert-dir=/data/kubernetes-cluster/ssl\ --cluster-domain=cluster.local。\ --发夹模式=混杂桥\ --serialize-image-pulls=false

kubelet 打印这些错误(我的 docker damon pid 是 5140): E0706 12:11:46.061949 1 container_manager_linux.go:394] 打开/proc/5140/cgroup: 没有这样的文件或目录 E0706 12:11:46.137217 1 container_manager_linux.go:97] 无法确保 docker 进程在所需的容器中运行 E0706 12:16:46.062290 1 container_manager_linux.go:394] 打开/proc/5140/cgroup: 没有这样的文件或目录 E0706 12:16:46.138189 1 container_manager_linux.go:97] 无法确保 docker 进程在所需的容器中运行

如果我执行 volume host dir '/proc',则 docker damon 发生错误。 docker: 来自守护进程的错误响应:oci 运行时错误:container_linux.go:247: 启动容器进程导致“process_linux.go:359: 容器初始化导致\”rootfs_linux.go:54: mounting\\\“/proc\\\”到 rootfs\\\"/data/docker/local-storage/docker/aufs/mnt/6ad53fff3b30e8d709b1be326f5de1314371e174e34806d4d6c6436275b6fbd3\\\"在\\\"/proc\\\"导致\\\"\\\\\\\"/data/docker/local-storage/docker/aufs/mnt/6ad53fff3b30e8d709b1be326f5de1314371e174e34806d4d6c6436275b6fbd3/proc\\\\\\\"无法安装,因为它位于\\\\\\\"/proc\\\\\\\"\\\"\""。

我该怎么办,谁能给我一盏灯?

最佳答案

有一个名为 hyperkube 的官方 docker 镜像,其中包含所有 Kubernetes 二进制文件,请参阅 https://kubernetes.io/docs/getting-started-guides/scratch/#selecting-images

您可以在此处找到有关如何将其用于 kubelet 的示例 systemd 服务:https://github.com/kubernetes/kubernetes-anywhere/blob/master/phase2/ignition/vanilla/kubelet.service

关于kubernetes - 如何将 kubelet 作为 docker 容器运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44940661/

相关文章:

kubernetes - 如何更改 Kubernetes 工作节点的内部 IP?

docker - hyperkube 代理,kubelet 找不到 iptables 链,rkt run --net=host

docker - 尽管作为 VM 运行,Minikube Kubernetes 不允许在 Mac 上进入

docker - 无法从部署在同一集群中的我的 golang 应用程序连接到 kubernetes 上的 redis 集群

ssl - 很多关于 http : TLS handshake error from <ip>:<port>: remote error: tls: bad certificate 的错误

Kubernetes 运行状况检查在启用网络策略的情况下失败

Kubernetes pod 未启动

kubernetes - 使用稳定的 Helm 图在kubernetes中安装cert-manager后无法对证书执行描述

logging - Filebeat 多行 kubernetes 容器日志不起作用

go - configmaps 更新时如何在 kubernetes 的应用程序中获取通知