Я установил кластер 3 узлов kubernetes (v1.9.3
) в Ubuntu 16.04.
Перед установкой Я очистил правила iptables и следую документам k8s для фланели с помощью следующей команды для инициализации кластера:
# kubeadm init --apiserver-advertise-address 192.168.56.20 --pod-network-cidr=10.244.0.0/16 --kubernetes-version 1.9.3
# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml
Предыдущая команда выглядела успешной:
# kubectl -n kube-system -n kube-system get pods
NAME READY STATUS RESTARTS AGE
etcd-master 1/1 Running 0 3m
kube-apiserver-master 1/1 Running 0 2m
kube-controller-manager-master 1/1 Running 0 2m
kube-dns-6f4fd4bdf-4c76v 3/3 Running 0 3m
kube-flannel-ds-wbx97 1/1 Running 0 1m
kube-proxy-x65lv 1/1 Running 0 3m
kube-scheduler-master 1/1 Running 0 2m
Но проблема в том, что kube-dns
кажется, что получен неправильный адрес конечной точки службы, это можно увидеть с помощью следующих команд:
# kubectl get ep kube-dns --namespace=kube-system
NAME ENDPOINTS AGE
kube-dns 172.17.0.2:53,172.17.0.2:53 3m
root@master:~# kubectl describe service kube-dns -n kube-system
Name: kube-dns
Namespace: kube-system
Labels: k8s-app=kube-dns
kubernetes.io/cluster-service=true
kubernetes.io/name=KubeDNS
Annotations: <none>
Selector: k8s-app=kube-dns
Type: ClusterIP
IP: 10.96.0.10
Port: dns 53/UDP
TargetPort: 53/UDP
Endpoints: 172.17.0.2:53
Port: dns-tcp 53/TCP
TargetPort: 53/TCP
Endpoints: 172.17.0.2:53
Session Affinity: None
Events: <none>
172.17.0.2
- это IP-адрес, назначенный док-мостом (docker0
)для kube-dns
контейнера.При работающей настройке сети k8s kube-dns
должен иметь конечные точки с адресом от podSubnet
(10.244.0.0/16
).
Эффект текущей настройки заключается в том, что все модули не будут работать с DNS, пока IP-связь нормальная.
Я попытался удалить модуль kube-dns
, чтобы увидеть, что новые контейнеры kube-dns
могут получить конечные точки из podSubnet
, но это не так.
Из журналов запуска контейнеров 3 kube-dns
ЛЮБЫХ сообщений об ошибках нет.