Настройка Kubernetes - API недоступен из модулей - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь настроить базовый кластер Kubernetes на (Ubuntu 16) VM.Я только что ознакомился с документацией по началу работы и ожидал работающий кластер, но, к сожалению, такой удачи нет - кажется, никакие модули не могут подключиться к API Kubenernetes.Так как я новичок в Kubernetes, мне очень трудно найти, где что-то идет не так.Сценарий обеспечения:

apt-get update && apt-get upgrade -y
apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl docker.io
apt-mark hold kubelet kubeadm kubectl
swapoff -a
sysctl net.bridge.bridge-nf-call-iptables=1
kubeadm init
mkdir -p /home/ubuntu/.kube
cp -i /etc/kubernetes/admin.conf /home/ubuntu/.kube/config
chown -R ubuntu:ubuntu /home/ubuntu/.kube
runuser -l ubuntu -c "kubectl apply -f \"https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')\""
runuser -l ubuntu -c "kubectl taint nodes --all node-role.kubernetes.io/master-"

Установка выглядит нормально.

ubuntu@packer-Ubuntu-16:~$ kubectl get pods -o wide --all-namespaces
NAMESPACE     NAME                                       READY   STATUS             RESTARTS   AGE   IP               NODE               NOMINATED NODE   READINESS GATES
kube-system   coredns-86c58d9df4-lbp46                   0/1     CrashLoopBackOff   7          18m   10.32.0.2        packer-ubuntu-16   <none>           <none>
kube-system   coredns-86c58d9df4-t8nnn                   0/1     CrashLoopBackOff   7          18m   10.32.0.3        packer-ubuntu-16   <none>           <none>
kube-system   etcd-packer-ubuntu-16                      1/1     Running            0          17m   145.100.100.100  packer-ubuntu-16   <none>           <none>
kube-system   kube-apiserver-packer-ubuntu-16            1/1     Running            0          18m   145.100.100.100  packer-ubuntu-16   <none>           <none>
kube-system   kube-controller-manager-packer-ubuntu-16   1/1     Running            0          17m   145.100.100.100  packer-ubuntu-16   <none>           <none>
kube-system   kube-proxy-dwhhf                           1/1     Running            0          18m   145.100.100.100  packer-ubuntu-16   <none>           <none>
kube-system   kube-scheduler-packer-ubuntu-16            1/1     Running            0          17m   145.100.100.100  packer-ubuntu-16   <none>           <none>
kube-system   weave-net-sfvz5                            2/2     Running            0          18m   145.100.100.100  packer-ubuntu-16   <none>           <none>

Вопрос: это нормально, что модули Kubernetes имеют в качестве IP ip eth0 хоста (145.100.100.100)?Мне кажется странным, я ожидал бы, что у них будет виртуальный IP-адрес?

Как вы видите, модуль coredns падает, потому что, ну, он не может достичь API.

Этокак я понимаю, сервис:

ubuntu@packer-Ubuntu-16:~$ kubectl get svc
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   22m

Сбой CoreDNS, потому что API недоступен:

ubuntu@packer-Ubuntu-16:~$ kubectl logs -n kube-system coredns-86c58d9df4-lbp46
.:53
2018-12-06T12:54:28.481Z [INFO] CoreDNS-1.2.6
2018-12-06T12:54:28.481Z [INFO] linux/amd64, go1.11.2, 756749c
CoreDNS-1.2.6
linux/amd64, go1.11.2, 756749c
 [INFO] plugin/reload: Running configuration MD5 = f65c4821c8a9b7b5eb30fa4fbc167769
E1206 12:54:53.482269       1 reflector.go:205] github.com/coredns/coredns/plugin/kubernetes/controller.go:318: Failed to list *v1.Namespace: Get https://10.96.0.1:443/api/v1/namespaces?limit=500&resourceVersion=0: dial tcp 10.96.0.1:443: i/o timeout
E1206 12:54:53.482363       1 reflector.go:205] github.com/coredns/coredns/plugin/kubernetes/controller.go:311: Failed to list *v1.Service: Get https://10.96.0.1:443/api/v1/services?limit=500&resourceVersion=0: dial tcp 10.96.0.1:443: i/o timeout
E1206 12:54:53.482540       1 reflector.go:205] github.com/coredns/coredns/plugin/kubernetes/controller.go:313: Failed to list *v1.Endpoints: Get https://10.96.0.1:443/api/v1/endpoints?limit=500&resourceVersion=0: dial tcp 10.96.0.1:443: i/o timeout

Я попытался запустить простой alpine модуль / контейнер.И действительно, 10.96.0.1 не реагирует на пинги или что-то еще.

Я застрял здесь.Я пытался много гуглить, но ничего не получается, и мое понимание довольно простое.Я предполагаю, что что-то не так с сетью, но я не знаю что (для меня кажется подозрительным, что при выполнении get pods стручки обнаруживаются с IP-адресом хоста, но, возможно, это также нормально?)

1 Ответ

0 голосов
/ 06 декабря 2018

Я обнаружил, что проблема вызвана правилами iptables хоста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...