前言
我的k8s版本用ipvs替换iptables
在所有节点上操作如下配置kube-proxy,在master上操作 现在进入pod内,可以ping通了!!!
前言今天在搭建k8s的时候,发现不同服务间容器内无法通过别名来通信,但是能通过容器ip来通信,说白了就是
ping 服务名 --不通
ping 容器IP --通
网上查阅很多资料,才找到问题所在,话不多说,以下是解决方案。
我的k8s版本kubernetes :v1.20.13kuboard:v3.3.0.6 用ipvs替换iptables 在所有节点上操作如下
开启内核支持
cat >> /etc/sysctl.conf << EOF net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF
让配置生效
sysctl -p
开启ipvs支持
yum -y install ipvsadm ipset
ipvs生效
# 临时生效 modprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack_ipv4 # 永久生效(建议) cat > /etc/sysconfig/modules/ipvs.modules <配置kube-proxy,在master上操作 因使用kubeadmin安装,所以操作方式如
kubectl edit cm kube-proxy -n kube-system修改mode配置
kind: MasterConfiguration apiVersion: kubeadm.k8s.io/v1alpha1 ... ipvs: excludeCIDRs: null minSyncPeriod: 0s scheduler: "" syncPeriod: 30s kind: KubeProxyConfiguration metricsBindAddress: 127.0.0.1:10249 mode: "ipvs" #修改这里在master重启kube-proxy
kubectl get pod -n kube-system | grep kube-proxy | awk '{print $1}' | xargs kubectl delete pod -n kube-system现在进入pod内,可以ping通了!!!



