码迷,mamicode.com
首页 > 其他好文 > 详细

处理K8S集群pod不能访问其他service的问题

时间:2020-05-21 17:45:11      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:加ip   命令   第一个   重启   mode   ast   ipv4   --   nbsp   

当时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模块
/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
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

 

 

一切没有问题后,pod上的应用就能正常注册了

处理K8S集群pod不能访问其他service的问题

标签:加ip   命令   第一个   重启   mode   ast   ipv4   --   nbsp   

原文地址:https://www.cnblogs.com/2019peng/p/12932197.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!