Kubernetes: nodePort tidak merespons pada semua nodeIPs

Dibuat pada 28 Feb 2017  ·  1Komentar  ·  Sumber: kubernetes/kubernetes

Versi Kubernetes :
Versi Klien: version.Info{Mayor:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState:"clean", BuildDate:"2017-01-12T04:57: 25Z", GoVersion:"go1.7.4", Kompilator:"gc", Platform:"darwin/amd64"}
Versi Server: version.Info{Mayor:"1", Minor:"5", GitVersion:"v1.5.3", GitCommit:"029c3a408176b55c30846f0faedf56aae5992e9b", GitTreeState:"clean", BuildDate:"2017-02-15T06:34: 56Z", GoVersion:"go1.7.4", Kompilator:"gc", Platform:"linux/amd64"}

Versi Docker pada master dan minion :
$ buruh pelabuhan -v
Docker versi 1.13.1, build 092cba3

Lingkungan :

  • Kernel (misalnya uname -a ):
    Linux knode-master 4.4.0-45-generic #66-Ubuntu SMP Rabu 19 Okt 14:12:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
  • Instal alat :
    kubeadm

  • Lainnya :

Apa yang terjadi :
Dengan menggunakan halaman kubeadm, saya memasang kluster tiga simpul.

$ kc describe nodes | awk '/Addresses/ {print $2}' | awk -F',' '{print $3}' 
knode-0
knode-1
knode-master

Jaringan pod kanal yang terpasang:

kubectl create -f https://raw.githubusercontent.com/tigera/canal/master/k8sinstall/kubeadm/canal.yaml

Node, layanan, pod sehat saat ini. Jadi lanjutkan ke dasbor

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

Apa yang Anda harapkan terjadi :
Bagian nodePort di dokumen Layanan menunjukkan nodePort harus terlihat di semua nodeIP.

Dalam kasus saya, tidak semua nodeIP merespons permintaan di nodePort 31699 dasbor dan meneruskannya ke pod dasbor.
Hanya node (atau minion) yang menghosting pod yang tampaknya merespons permintaan browser. Node lain (atau antek) tidak merespons.

Cara memperbanyaknya (seminimal dan setepat mungkin):

_Dari knode-1 (seorang antek):_

$ 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 akses ke dasbor di luar cluster:_

Waktu koneksi habis ke _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

Berhasil diunduh dari 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 * :

_Dari knode-1 (dapat diakses 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

_Dari knode-0 (nodePort 31699 tidak dapat diakses ):_

$ 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

Hal lain yang perlu kita ketahui :

Perilaku yang sama dapat direproduksi pada RHEL 7.3.

sinetwork

Komentar yang paling membantu

Saya mengalami masalah yang sama.
Jalankan iptables -P FORWARD ACCEPT dapat memperbaiki masalah Anda. Tapi tidak yakin itu bug ketika terintegrasi dengan docker v1.13.1

>Semua komentar

Saya mengalami masalah yang sama.
Jalankan iptables -P FORWARD ACCEPT dapat memperbaiki masalah Anda. Tapi tidak yakin itu bug ketika terintegrasi dengan docker v1.13.1

Apakah halaman ini membantu?
0 / 5 - 0 peringkat