问题现象:部署完calico后节点变为Ready状态,但是不同节点之间pod 始终ping不通,node去ping不在本节点的pod ip也是不通
解决方案:通过更改calico网络VXLANMODE的模式,改为always,就可以了,具体
[root@sit-k8s-01 ~]# ./calicoctl get ippools -o wide
NAME CIDR NAT IPIPMODE VXLANMODE DISABLED DISABLEBGPEXPORT SELECTOR
default-ipv4-ippool 10.244.0.0/16 true Never CrossSubnet false false all()
[root@sit-k8s-01 ~]# kubectl edit ippools.projectcalico.org
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
creationTimestamp: "2024-05-08T06:16:11Z"
name: default-ipv4-ippool
resourceVersion: "11965"
uid: 1ac3089d-cb0a-4c1e-a65f-20f42620f37f
spec:
allowedUses:
- Workload
- Tunnel
blockSize: 26
cidr: 10.244.0.0/16
ipipMode: Never
natOutgoing: true
nodeSelector: all()
vxlanMode: CrossSubnet #改为always
具体原理我也不知道,有大佬来解释一下嘛?