как запустить kubelet как докер контейнер

Могу ли я запустить kubelet как docker-контейнер на основе kubernetes v1.6.6? Если можно, то как создать образ или где его взять, а также как запустить этот образ?

Ниже приведены мои операции, но есть некоторые проблемы.

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

докер запускает 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\\\\\\\"\\\"\"".

что мне делать, может кто-нибудь показать мне свет?


person antimoth    schedule 06.07.2017    source источник
comment
Можно запустить кубелет в контейнере, но сложно сказать, где вы сбились с пути. Из какого конфига вы это взяли?   -  person Norbert van Nobelen    schedule 06.07.2017
comment
Это все моя попытка. большинство томов создается, когда я вижу ошибки, напечатанные kubelet. но не могу тома каталог / proc, потому что контейнер будет читать / записывать этот каталог, когда контейнер начинает работать.   -  person antimoth    schedule 06.07.2017
comment
есть ли официальный документ для создания контейнера kubelet?   -  person antimoth    schedule 06.07.2017
comment
Может быть, --privileged добьется цели?   -  person Leprechaun    schedule 06.07.2017


Ответы (1)


Существует официальный образ докера под названием hyperkube, который содержит все двоичные файлы Kubernetes, см. https://kubernetes.io/docs/getting-started-guides/scratch/#selecting-images

Вы можете найти пример службы systemd о том, как использовать ее для kubelet здесь: https://github.com/kubernetes/kubernetes-anywhere/blob/master/phase2/ignition/vanilla/kubelet.service

person slintes    schedule 06.07.2017