【问题标题】:how to run kubelet as docker container如何将 kubelet 作为 docker 容器运行
【发布时间】:2017-12-09 23:22:59
【问题描述】:

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

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

Dockerfile FROM i71:5000/ubuntu:14.04 ADD iptables /usr/local/bin/iptables ADD bin/kubelet /usr/local/bin/kubelet

docker 运行 sh #!/bin/bash docker rm -f $(docker ps -aq --filter "name=kubelet") docker run \ -d \ --restart="always" \ --net="host" \ -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 /data/kubelet:/var/lib/kubelet \ -v /etc/localtime:/etc/localtime \ -v /var/run/:/var/run/ \ -v /var/log/:/var/log/ \ --privileged=true \ --name kubelet \ i71:5000/kubelet:v1.6.6 \ /usr/local/bin/kubelet \ --logtostderr=true \ --v=0 \ --cgroup-driver=cgroupfs \ --api-servers=http://192.168.0.97:8080 \ --docker-endpoint=http://127.0.0.1:4243 \ --address=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. \ --hairpin-mode=promiscuous-bridge \ --serialize-image-pulls=false

kubelet 打印出这些错误(我的 docker damon pid 是 5140): E0706 12:11:46.061949 1 container_manager_linux.go:394] open /proc/5140/cgroup: no such file or directory E0706 12:11:46.137217 1 container_manager_linux.go:97] Unable to ensure the docker processes run in the desired containers E0706 12:16:46.062290 1 container_manager_linux.go:394] open /proc/5140/cgroup: no such file or directory E0706 12:16:46.138189 1 container_manager_linux.go:97] Unable to ensure the docker processes run in the desired containers

如果我执行卷主机目录“/proc”,则 docker damon 发生错误。 docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "process_linux.go:359: container init caused \"rootfs_linux.go:54: mounting\\\"/proc\\\" to rootfs \\\"/data/docker/local-storage/docker/aufs/mnt/6ad53fff3b30e8d709b1be326f5de1314371e174e34806d4d6c6436275b6fbd3\\\" at \\\"/proc\\\" caused \\\"\\\\\\\"/data/docker/local-storage/docker/aufs/mnt/6ad53fff3b30e8d709b1be326f5de1314371e174e34806d4d6c6436275b6fbd3/proc\\\\\\\" cannot be mounted because it is located inside \\\\\\\"/proc\\\\\\\"\\\"\"".

我该怎么办,谁能给我点灯?

【问题讨论】:

  • 可以在容器中运行 kubelet,但是很难说你在哪里偏离了轨道。你是从什么配置中获取的?
  • 这都是我的尝试。当我看到 kubelet 打印的错误时创建的大多数卷。但无法卷 /proc 目录,因为容器将在容器开始运行时读取/写入此目录。
  • 有创建kubelet容器的官方文档吗?
  • 也许--privileged 可以解决问题?

标签: kubernetes kubelet


【解决方案1】:

有一个名为 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

【讨论】:

    猜你喜欢
    • 2018-10-23
    • 2018-06-01
    • 2013-09-01
    • 1970-01-01
    • 2016-09-13
    • 2021-09-19
    • 1970-01-01
    • 2015-02-18
    • 2016-02-21
    相关资源
    最近更新 更多