【K8s网络】自定义Calico部署清单
参考:https://docs.projectcalico.org/getting-started/kubernetes/installation/config-options
自定义 Calico 清单
关于自定义 Calico 清单
每个清单都包含在 Kubernetes 集群中的每个节点上安装 Calico 所需的所有资源。
它安装以下 Kubernetes 资源:
- 使用 DaemonSet 在每个主机上安装 calico/node 容器。
- 使用 DaemonSet 在每个主机上安装 Calico CNI 二进制文件和网络配置。
- 运行 calico/kube-controllers 作为deployment。
- calico-etcd-secrets 可选择允许提供 etcd TLS 资产。
- calico-config ConfigMap,其中包含用于配置安装的参数。
以下部分更深入地讨论了可配置参数。
配置 pod IP 范围
Calico IPAM 从 IP 池分配 IP 地址。
要更改用于 Pod 的默认 IP 范围,请修改 calico.yaml 中 CALICO_IPV4POOL_CIDR 环境变量。
配置 IP-in-IP
默认情况下,清单启用跨子网的 IP-in-IP 封装。 许多用户可能想关闭IP-in-IP封装,比如以下情况。
- 他们的集群 在正确配置的 AWS VPC 中运行。
- 他们所有的 Kubernetes 节点都连接到同一个第 2 层网络。
- 他们打算使用 BGP 对等互连让他们的底层基础设施路由到 pod IP 地址。
要禁用 IP-in-IP 封装,请修改 CALICO_IPV4POOL_IPIP 环境变量。
从 IP-in-IP 切换到 VXLAN
默认情况下,Calico 清单启用 IP-in-IP 封装。 如果您在阻止 IP-in-IP 的网络上,例如 作为Azure,你不妨切换到 Calico 的VXLAN 封装模式 。 要在安装时执行此操作(以便 Calico 创建带有 VXLAN 的默认 IP 池,并且无需进行 IP-in-IP 配置) 撤销):
- 从用于策略和网络的 Calico 清单之一开始。
- 使用环境变量 CALICO_IPV4POOL_VXLAN 替换 CALICO_IPV4POOL_IPIP. 将新变量的值保留为“Always”。
- 可选,(如果您运行的是 VXLAN-only 集群,为了节省一些资源)完全禁用 Calico 基于 BGP 的 联网:
- 使用 calico_backend: "vxlan" 代替 calico_backend: "bird",这将禁用 BIRD。
- 注释掉来自 calico/node 就绪/存活检查部分的 - -bird-ready 和 - -bird-live (否则禁用 BIRD 将导致 在每个节点上的就绪/存活检查失败):
livenessProbe:
exec:
command:
- /bin/calico-node
- -felix-live
# - -bird-live
readinessProbe:
exec:
command:
- /bin/calico-node
# - -bird-ready
- -felix-ready
有关 calico/node 的配置变量的更多信息,包括其他 VXLAN 设置,请参阅 配置 calico/node(https://docs.projectcalico.org/reference/node/configuration) 。
注意 : CALICO_IPV4POOL_VXLAN 环境变量仅在 calico/node 第一次启动时创建默认 IP 池。 池已经创建后,它没有任何影响。 安装完成后切换到 VXLAN 模式,使用 calicoctl 修改 IPPool 资源。