Kubernetes node的防火牆問題導致pod ip無法訪問
環境:
1.在hadoop36機器,ping hadoop38機器的pod的ip,為172.30.1.4
2.該pod的service的external-ip的ip為hadoop36的ip
3.下面機器的ip,已經使用 xx.xx.xx.來替代和加圖層覆蓋掉
問題: 無法透過服務EXTERNAL-IP+port,訪問對應的pod的服務,說白了,就是無法訪問pod ip+port,無法ping通172.30.1.4

步驟:
1.先把服務停掉
[root@hadoop38 ~]# systemctl stop etcd flanneld docker kubelet kube-proxy
2.檢視當前規則,然後清空
[root@hadoop38 ~]# iptables -L -n
[root@hadoop38 ~]# iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat
[root@hadoop38 ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@hadoop38 ~]#
3.重啟iptables 和 開啟服務
[root@hadoop38 ~]# systemctl restart iptables
[root@hadoop38 ~]# systemctl start etcd flanneld docker kubelet kube-proxy
4.再次檢視防火牆策略 和清空掉
[root@hadoop38 ~]# iptables -L -n
[root@hadoop38 ~]# iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat
5.等待一會 最終檢視防火牆策略
[root@hadoop38 ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
KUBE-FIREWALL all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
KUBE-FIREWALL all -- 0.0.0.0/0 0.0.0.0/0
KUBE-SERVICES all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes service portals */
Chain KUBE-FIREWALL (2 references)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes firewall for dropping marked packets */ mark match 0x8000/0x8000
Chain KUBE-SERVICES (1 references)
target prot opt source destination
[root@hadoop38 ~]# destination
6.在36機器驗證ping 和 telnet檢驗
[root@hadoop36 dns]# kubectl get all -n cdh -o wide
NAME READY STATUS RESTARTS AGE IP NODE
po/mysql-master-64k8r 1/1 Running 5 1h 172.30.1.4 xx.xx.xx.38
NAME DESIRED CURRENT READY AGE CONTAINER(S) IMAGE(S) SELECTOR
rc/mysql-master 1 1 1 1h master hadoop35.jiuye/k8sregister/jiuye/mysql5.6-master:v1.6 name=mysql-master
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
svc/mysql-master 10.254.56.245 xx.xx.xx.36 13307/TCP 1h name=mysql-master
[root@hadoop36 dns]#
[root@hadoop36 dns]# ping 172.30.1.4
PING 172.30.1.4 (172.30.1.4) 56(84) bytes of data.
64 bytes from 172.30.1.4: icmp_seq=1 ttl=63 time=0.388 ms
^Z
[31]+ Stopped ping 172.30.1.4
[root@hadoop36 dns]# telnet xx.xx.xx.36 13307
Trying xx.xx.xx..36...
Connected to xx.xx.xx..36.
Escape character is '^]'
備註:
1.這種情況發生過兩次(都是因為vm機器重啟),特此記錄一下步驟,備查。
1.在hadoop36機器,ping hadoop38機器的pod的ip,為172.30.1.4
2.該pod的service的external-ip的ip為hadoop36的ip
3.下面機器的ip,已經使用 xx.xx.xx.來替代和加圖層覆蓋掉
問題: 無法透過服務EXTERNAL-IP+port,訪問對應的pod的服務,說白了,就是無法訪問pod ip+port,無法ping通172.30.1.4

步驟:
1.先把服務停掉
[root@hadoop38 ~]# systemctl stop etcd flanneld docker kubelet kube-proxy
2.檢視當前規則,然後清空
[root@hadoop38 ~]# iptables -L -n
[root@hadoop38 ~]# iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat
[root@hadoop38 ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@hadoop38 ~]#
3.重啟iptables 和 開啟服務
[root@hadoop38 ~]# systemctl restart iptables
[root@hadoop38 ~]# systemctl start etcd flanneld docker kubelet kube-proxy
4.再次檢視防火牆策略 和清空掉
[root@hadoop38 ~]# iptables -L -n
[root@hadoop38 ~]# iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat
5.等待一會 最終檢視防火牆策略
[root@hadoop38 ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
KUBE-FIREWALL all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
KUBE-FIREWALL all -- 0.0.0.0/0 0.0.0.0/0
KUBE-SERVICES all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes service portals */
Chain KUBE-FIREWALL (2 references)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes firewall for dropping marked packets */ mark match 0x8000/0x8000
Chain KUBE-SERVICES (1 references)
target prot opt source destination
[root@hadoop38 ~]# destination
6.在36機器驗證ping 和 telnet檢驗
[root@hadoop36 dns]# kubectl get all -n cdh -o wide
NAME READY STATUS RESTARTS AGE IP NODE
po/mysql-master-64k8r 1/1 Running 5 1h 172.30.1.4 xx.xx.xx.38
NAME DESIRED CURRENT READY AGE CONTAINER(S) IMAGE(S) SELECTOR
rc/mysql-master 1 1 1 1h master hadoop35.jiuye/k8sregister/jiuye/mysql5.6-master:v1.6 name=mysql-master
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
svc/mysql-master 10.254.56.245 xx.xx.xx.36 13307/TCP 1h name=mysql-master
[root@hadoop36 dns]#
[root@hadoop36 dns]# ping 172.30.1.4
PING 172.30.1.4 (172.30.1.4) 56(84) bytes of data.
64 bytes from 172.30.1.4: icmp_seq=1 ttl=63 time=0.388 ms
^Z
[31]+ Stopped ping 172.30.1.4
[root@hadoop36 dns]# telnet xx.xx.xx.36 13307
Trying xx.xx.xx..36...
Connected to xx.xx.xx..36.
Escape character is '^]'
備註:
1.這種情況發生過兩次(都是因為vm機器重啟),特此記錄一下步驟,備查。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30089851/viewspace-2141660/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CentOS 防火牆配置與REJECT導致沒有生效問題CentOS防火牆
- Linux 防火牆只允許指定IP 埠訪問Linux防火牆
- kubernetes如何訪問pod服務
- nfs導致的作業系統目錄無法訪問NFS作業系統
- 伺服器由於防火牆問題導致埠不通解決方法伺服器防火牆
- Linux配置靜態IP解決無法訪問網路問題Linux
- 【linux】【docker】Docker預設網段配置導致無法訪問LinuxDocker
- 【epoll問題】EPOLLRDHUP使用導致無法接受資料
- Win2003和Win2008防火牆導致FTP伺服器不能訪問的解決方法防火牆FTP伺服器
- 重置資料庫密碼後導致網站無法訪問資料庫密碼網站
- 代理IP無法訪問怎麼解決?
- 因為跨域問題導致的無法讀取 response header跨域Header
- 防止跨域問題無法訪問網址跨域
- Mac有防火牆嗎?關於Mac防火牆常見的問題解答Mac防火牆
- 解決 raw.githubusercontent.com 無法訪問的問題Github
- 解決寶塔皮膚無法訪問的問題?
- Fedora 31 k8s kubernetes kubeasz 防火牆 firewalld 導致 harbor pod 容器 例項 網路不通 connect: connection refusedK8S防火牆
- Github 部署 | DNS Pod 終極解決無法訪問(番外)GithubDNS
- github無法訪問Github
- 關於docker無法訪問倉庫的映象代理問題Docker
- 由於無法分配ip而導致的FailedCreatePodSandBoxAI
- hadoop不能互相訪問和linux防火牆守護程式HadoopLinux防火牆
- 在Ubuntu上配置SSH訪問並關閉防火牆Ubuntu防火牆
- IP頁面訪問域名介面問題
- git hub 無法訪問 訪問速度慢Git
- springboot中靜態頁面無法訪問及return無法重定向問題Spring Boot
- 前後端頁面分離導致session無法正常獲取的問題後端Session
- 應用使用JNDI,資料庫無法連線,導致的程序無法啟動問題處理資料庫
- DevExpress 的LayoutControl控制元件導致資源無法釋放的問題處理devExpress控制元件
- 使用Tor繞過防火牆進行遠端匿名訪問防火牆
- 訪問github出現無法訪問此網站Github網站
- postgres_fdw 無法通過域名 訪問外部表問題
- ANALYZE導致的阻塞問題分析
- [BUG反饋]新增模組無法通過URL訪問的問題
- Kubernetes學習筆記(七):訪問Pod後設資料與Kubernetes API筆記API
- 如何解決網站限制IP訪問的問題網站
- 在聯網狀態下,有很多應用無法聯網問題,如360安全衛士, Smartscreen篩選器無法訪問, 部分網頁無法訪問等問題的解決方法網頁
- Vue開發 localhost 替換成 本機ip無法訪問Vuelocalhost
- Kubernetes:37---服務(無法訪問服務的一些原因)