Версия Кубернета :
Версия клиента: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState:"clean", BuildDate:"2017-01-12T04:57: 25Z", версия Go: "go1.7.4", компилятор: "gc", платформа: "darwin/amd64"}
Версия сервера: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.3", GitCommit:"029c3a408176b55c30846f0faedf56aae5992e9b", GitTreeState:"clean", BuildDate:"2017-02-15T06:34: 56Z", версия Go: "go1.7.4", компилятор: "gc", платформа: "linux/amd64"}
Версия Docker на мастере и миньонах :
$ докер -v
Докер версии 1.13.1, сборка 092cba3
Окружающая среда :
uname -a
):Установить инструменты :
кубадм
Другие :
Что произошло :
Используя страницу kubeadm , я установил кластер из трех узлов.
$ kc describe nodes | awk '/Addresses/ {print $2}' | awk -F',' '{print $3}'
knode-0
knode-1
knode-master
Установленная pod-сеть каналов:
kubectl create -f https://raw.githubusercontent.com/tigera/canal/master/k8sinstall/kubeadm/canal.yaml
Узлы, сервисы, поды в это время были исправны. Итак, приступили к приборной панели
kubectl create -f https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml
$ kubectl get -n kube-system services
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
canal-etcd 10.96.232.136 <none> 6666/TCP 5m
kube-dns 10.96.0.10 <none> 53/UDP,53/TCP 13h
kubernetes-dashboard 10.110.163.186 <nodes> 80:31699/TCP 1m
Что вы ожидали :
Раздел nodePort в документе Services указывает, что nodePort должен быть виден на всех IP-адресах узлов.
В моем случае не все IP-адреса узлов отвечают на запросы на nodePort 31699 панели инструментов и перенаправляют их в модуль панели инструментов.
Кажется, что только узел (или миньон), на котором размещается модуль, отвечает на запросы браузера. Другие узлы (или миньоны) не отвечают.
Как это воспроизвести (минимально и точно):
_От узла-1 (миньон):_
$ sudo docker ps -a | grep dashboard
79e23eff2c26 gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1 "/dashboard --port..." 44 minutes ago Up 43 minutes
_curl доступ к дашборду за пределами кластера:_
Время ожидания соединения истекло до _knode-0:31699
$ curl -m 2 -O http://knode-0:31699/#/workload?namespace=default
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0curl: (28) Connection timed out after 2003 milliseconds
Успешно скачано с узла-1:31699
$ curl -m 2 -O http://knode-1:31699/#/workload?namespace=default
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 811 100 811 0 0 18097 0 --:--:-- --:--:-- --:--:-- 18431
*iptables * :
_От узла-1 (доступен порт узла 31699):_
$ sudo iptables-save | grep dashboard
-A KUBE-NODEPORTS -p tcp -m comment --comment "kube-system/kubernetes-dashboard:" -m tcp --dport 31699 -j KUBE-MARK-MASQ
-A KUBE-NODEPORTS -p tcp -m comment --comment "kube-system/kubernetes-dashboard:" -m tcp --dport 31699 -j KUBE-SVC-XGLOHA7QRQ3V22RZ
-A KUBE-SEP-4CN2KLL64AIMJOUC -s 192.168.92.6/32 -m comment --comment "kube-system/kubernetes-dashboard:" -j KUBE-MARK-MASQ
-A KUBE-SEP-4CN2KLL64AIMJOUC -p tcp -m comment --comment "kube-system/kubernetes-dashboard:" -m tcp -j DNAT --to-destination 192.168.92.6:9090
-A KUBE-SERVICES -d 10.110.163.186/32 -p tcp -m comment --comment "kube-system/kubernetes-dashboard: cluster IP" -m tcp --dport 80 -j KUBE-SVC-XGLOHA7QRQ3V22RZ
-A KUBE-SVC-XGLOHA7QRQ3V22RZ -m comment --comment "kube-system/kubernetes-dashboard:" -j KUBE-SEP-4CN2KLL64AIMJOUC
_От узла-0 (nodePort 31699 недоступен):_
$ sudo iptables-save | grep dashboard
-A KUBE-NODEPORTS -p tcp -m comment --comment "kube-system/kubernetes-dashboard:" -m tcp --dport 31699 -j KUBE-MARK-MASQ
-A KUBE-NODEPORTS -p tcp -m comment --comment "kube-system/kubernetes-dashboard:" -m tcp --dport 31699 -j KUBE-SVC-XGLOHA7QRQ3V22RZ
-A KUBE-SEP-4CN2KLL64AIMJOUC -s 192.168.92.6/32 -m comment --comment "kube-system/kubernetes-dashboard:" -j KUBE-MARK-MASQ
-A KUBE-SEP-4CN2KLL64AIMJOUC -p tcp -m comment --comment "kube-system/kubernetes-dashboard:" -m tcp -j DNAT --to-destination 192.168.92.6:9090
-A KUBE-SERVICES -d 10.110.163.186/32 -p tcp -m comment --comment "kube-system/kubernetes-dashboard: cluster IP" -m tcp --dport 80 -j KUBE-SVC-XGLOHA7QRQ3V22RZ
-A KUBE-SVC-XGLOHA7QRQ3V22RZ -m comment --comment "kube-system/kubernetes-dashboard:" -j KUBE-SEP-4CN2KLL64AIMJOUC
Что еще нам нужно знать :
Такое же поведение воспроизводится на RHEL 7.3.
Я столкнулся с той же проблемой.
Запуск iptables -P FORWARD ACCEPT
может решить вашу проблему. Но не уверен, что это ошибка при интеграции с докером v1.13.1.
Самый полезный комментарий
Я столкнулся с той же проблемой.
Запуск
iptables -P FORWARD ACCEPT
может решить вашу проблему. Но не уверен, что это ошибка при интеграции с докером v1.13.1.