安装Calico网络插件

环境配置

Calico 必须能够在宿主机上管理 cali* 网卡。当 IPIP 被启用时(默认),Calico 还需要能够管理 tunl* 网卡。

注意: 许多Linux发行版都安装了 NetworkManager。默认情况下 NetworkManager 不允许 Calico 管理网卡。如果你的节点有 NetworkManager,在安装 Calico 之前,防止 NetworkManager 控制 Calico 网卡。

NetworkManager 会篡改 default namespace 中的网卡的路由表,而这些路由表将要被 Calico 的虚拟网卡链接到容器。这会干扰 Calico agent 导致不能正确路由。

创建这个配置文件在 /etc/NetworkManager/conf.d/calico.conf,用来防止 NetworkManager 去干扰网卡:

1
2
3
# 所有节点都需要创建
[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:tunl*

安装Calico

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 其中一个主节点执行就好
# calico官方文档
https://docs.tigera.io/calico/latest/getting-started/kubernetes/self-managed-onprem/onpremises

# 下载calico.yaml
curl https://raw.githubusercontent.com/projectcalico/calico/v3.28.1/manifests/calico.yaml -O

## 修改pod网段
CALICO_IPV4POOL_CIDR 指定为 pod 网段

## 修改为 BGP 模式
## Enable IPIP
- name: CALICO_IPV4POOL_IPIP
value: "Always" #改成Off

# 应用calico网络插件
kubectl apply -f calico.yaml