Я создаю кластер Kubernetes, следуя этому руководству, и У меня проблемы с доступом к панели управления Kubernetes. Я уже создал еще один вопрос по этому поводу, который вы можете увидеть здесь, но пока копаете в моем кластере, я думаю, что проблема может быть где-то еще, и поэтому я создаю новый вопрос.
Я запускаю своего мастера, выполняя следующие команды:
> kubeadm reset
> kubeadm init --apiserver-advertise-address=[MASTER_IP] > file.txt
> tail -2 file.txt > join.sh # I keep this file for later
> kubectl apply -f https://git.io/weave-kube/
> kubectl -n kube-system get pod
NAME READY STATUS RESTARTS AGE
coredns-fb8b8dccf-kb2zq 0/1 Pending 0 2m46s
coredns-fb8b8dccf-nnc5n 0/1 Pending 0 2m46s
etcd-kubemaster 1/1 Running 0 93s
kube-apiserver-kubemaster 1/1 Running 0 93s
kube-controller-manager-kubemaster 1/1 Running 0 113s
kube-proxy-lxhvs 1/1 Running 0 2m46s
kube-scheduler-kubemaster 1/1 Running 0 93s
Здесь мы видим, что у меня два coredns
модуля застряли в состоянии ожидания навсегда, и когда я запускаю команду:
> kubectl -n kube-system describe pod coredns-fb8b8dccf-kb2zq
В разделе «События» я вижу следующее предупреждение:
Failed Scheduling : 0/1 nodes are available 1 node(s) had taints that the pod didn't tolerate.
Поскольку это предупреждение, а не ошибка, и что для меня как новичка в Kubernetes taints
не имеет большого значения, я попытался подключить узел к мастеру (используя ранее сохраненную команду):
> cat join.sh
kubeadm join [MASTER_IP]:6443 --token [TOKEN] \
--discovery-token-ca-cert-hash sha256:[ANOTHER_TOKEN]
> ssh [USER]@[WORKER_IP] 'bash' < join.sh
This node has joined the cluster.
На мастере проверяю, что нода подключена:
> kubectl get nodes
NAME STATUS ROLES AGE VERSION
kubemaster NotReady master 13m v1.14.1
kubeslave1 NotReady <none> 31s v1.14.1
И проверяю свои капсулы:
> kubectl -n kube-system get pod
NAME READY STATUS RESTARTS AGE
coredns-fb8b8dccf-kb2zq 0/1 Pending 0 14m
coredns-fb8b8dccf-nnc5n 0/1 Pending 0 14m
etcd-kubemaster 1/1 Running 0 13m
kube-apiserver-kubemaster 1/1 Running 0 13m
kube-controller-manager-kubemaster 1/1 Running 0 13m
kube-proxy-lxhvs 1/1 Running 0 14m
kube-proxy-xllx4 0/1 ContainerCreating 0 2m16s
kube-scheduler-kubemaster 1/1 Running 0 13m
Мы видим, что был создан еще один модуль kube-proxy, который застрял в статусе ContainerCreating.
И когда я снова делаю описание:
kubectl -n kube-system describe pod kube-proxy-xllx4
В разделе «События» я вижу несколько одинаковых предупреждений:
Failed create pod sandbox : rpx error: code = Unknown desc = failed pulling image "k8s.gcr.io/pause:3.1": Get https://k8s.gcr.io/v1/_ping: dial tcp: lookup k8s.gcr.io on [::1]:53 read up [::1]43133->[::1]:53: read: connection refused
Вот мои репозитории:
docker image ls
REPOSITORY TAG
k8s.gcr.io/kube-proxy v1.14.1
k8s.gcr.io/kube-apiserver v1.14.1
k8s.gcr.io/kube-controller-manager v1.14.1
k8s.gcr.io/kube-scheduler v1.14.1
k8s.gcr.io/coredns 1.3.1
k8s.gcr.io/etcd 3.3.10
k8s.gcr.io/pause 3.1
Итак, что касается дашборда, я попытался запустить его с помощью команды
> kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml
Но модуль панели мониторинга застрял в состоянии ожидания.
kubectl -n kube-system get pod
NAME READY STATUS RESTARTS AGE
coredns-fb8b8dccf-kb2zq 0/1 Pending 0 40m
coredns-fb8b8dccf-nnc5n 0/1 Pending 0 40m
etcd-kubemaster 1/1 Running 0 38m
kube-apiserver-kubemaster 1/1 Running 0 38m
kube-controller-manager-kubemaster 1/1 Running 0 39m
kube-proxy-lxhvs 1/1 Running 0 40m
kube-proxy-xllx4 0/1 ContainerCreating 0 27m
kube-scheduler-kubemaster 1/1 Running 0 38m
kubernetes-dashboard-5f7b999d65-qn8qn 1/1 Pending 0 8s
Итак, хотя изначально моя проблема заключалась в том, что я не могу получить доступ к своей панели инструментов, я предполагаю, что настоящая проблема глубже, чем это.
Я знаю, что просто поместил здесь много информации, но я новичок в k8s и совершенно не понимаю этого.
kubectl apply -f https://git.io/weave-kube/
? 10.04.2019kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
, и теперь в моих стручках появляется weave-net. И с тех пор мои стручки coredns волшебным образом начали работать (как вы сказали :)) 10.04.2019pod-network
. Рад, что мне помогли 10.04.2019