Kubernetes-Version :
Client-Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState:"clean", BuildDate:"2017-01-12T04:57: 25Z", GoVersion:"go1.7.4", Compiler:"gc", Plattform:"darwin/amd64"}
Serverversion: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.3", GitCommit:"029c3a408176b55c30846f0faedf56aae5992e9b", GitTreeState:"clean", BuildDate:"2017-02-15T06:34: 56Z", GoVersion:"go1.7.4", Compiler:"gc", Plattform:"linux/amd64"}
Docker-Version auf Master und Minions :
$ docker-v
Docker-Version 1.13.1, Build 092cba3
Umgebung :
uname -a
):Werkzeuge installieren :
kubeadm
Andere :
Was ist passiert :
Mit der kubeadm- Seite habe ich einen Cluster mit drei Knoten installiert.
$ kc describe nodes | awk '/Addresses/ {print $2}' | awk -F',' '{print $3}'
knode-0
knode-1
knode-master
Installiertes Kanal-Pod-Netzwerk:
kubectl create -f https://raw.githubusercontent.com/tigera/canal/master/k8sinstall/kubeadm/canal.yaml
Knoten, Dienste und Pods waren zu diesem Zeitpunkt fehlerfrei. Also weiter zum Dashboard
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
Was Sie erwartet haben :
Der Abschnitt „nodePort“ im Dokument „Services“ gibt an, dass „nodePort“ auf allen nodeIPs sichtbar sein sollte.
In meinem Fall antworten nicht alle NodeIPs auf Anfragen am NodePort 31699 des Dashboards und leiten sie an das Dashboard-Pod weiter.
Nur der Knoten (oder Minion), der den Pod hostet, scheint auf die Browseranfragen zu reagieren. Die anderen Knoten (oder Schergen) antworten nicht.
So reproduzieren Sie es (so minimal und genau wie möglich):
_Von knode-1 (ein Diener):_
$ 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-Zugriff auf das Dashboard außerhalb des Clusters:_
Zeitüberschreitung der Verbindung zu _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
Erfolgreich heruntergeladen von knode-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 * :
_Von knode-1 (nodePort 31699 zugänglich):_
$ 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
_Von knode-0 (nodePort 31699 nicht erreichbar ):_
$ 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
Was wir sonst noch wissen müssen :
Das gleiche Verhalten ist auf RHEL 7.3 reproduzierbar.
Ich bin auf das gleiche Problem gestoßen.
Führen Sie iptables -P FORWARD ACCEPT
aus, um Ihr Problem zu beheben. Aber ich bin mir nicht sicher, ob es sich um einen Fehler handelt, wenn er in Docker v1.13.1 integriert ist
Hilfreichster Kommentar
Ich bin auf das gleiche Problem gestoßen.
Führen Sie
iptables -P FORWARD ACCEPT
aus, um Ihr Problem zu beheben. Aber ich bin mir nicht sicher, ob es sich um einen Fehler handelt, wenn er in Docker v1.13.1 integriert ist