處理K8S集群pod不能訪問其他service的問題


當時K8S環境想用來設計部署微服務這塊的架構才發現的這個問題

我的K8S集群是使用kubeadm安裝的,當時也是跟着網上教程走的,並沒有注意網絡路由使用的iptables規則

現在出現pod不能ping通service或者ping通CLUSTER-IP的問題,導致如果我再集群里部署注冊中心,並不能正常使用的問題

以下為把iptables變更為ipvs模塊的操作

修改網絡模式ipvs
1、修改kube-proxy
再master上執行:kubectl edit cm kube-proxy -n kube-system   (如果是高可用,在第一個master上執行)
mode “ipvs”   (找到kind: KubeProxyConfiguration這一項。。。他下面的第二行就是這個mode)

2、添加ipvs模塊(每個節點上執行)

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF

3、添加權限並生效(每個節點上執行)

chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

4、重啟kube-proxy(master上執行)

kubectl get pod -n kube-system | grep kube-proxy |awk '{system("kubectl delete pod "$1" -n kube-system")}'

5、查看kube-proxy啟動日志,確認是否為ipvs
kubectl logs -n kube-system kube-proxy-ff74q  (這個pod名稱使用命令kubectl get pod -n kube-system查出來)
6、驗證是否可以pod訪問service

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM