【K8s网络】为本地部署安装 Calico 网络和网络策略
参考:https://docs.projectcalico.org/getting-started/kubernetes/self-managed-onprem/onpremises
确定您的数据存储
Kubernetes API数据存储是Kubernetes工作负载推荐的数据存储。
注意 : 不建议将 etcd 数据库用于新安装。 但是,如果您将 Calico 作为 OpenStack 和 Kubernetes 的网络插件运行,则它是一个选项。
在节点上安装 Calico
根据您的数据存储和节点数量,选择下面的选项以安装 Calico。
注意 :超过 50 个节点使用 Kubernetes API 数据存储提供扩展 Typha 守护进程。 etcd 不包含 Typha,因为 etcd 已经处理了许多客户端,因此使用 Typha 是多余的,不推荐使用。
使用 Kubernetes API 数据存储安装 Calico,50 个或更少节点
1.下载 Kubernetes API 数据存储的 Calico 网络清单。
curl https://docs.projectcalico.org/manifests/calico.yaml -O
2.如果您使用的是 pod CIDR 192.168.0.0/16,跳到下一步。 如果您在 kubeadm 中使用不同的 pod CIDR,则无需更改 - Calico 将根据运行配置自动检测 CIDR。 对于其他平台,请确保取消对清单中的 CALICO_IPV4POOL_CIDR 变量的注释,并将其设置为与您选择的 pod CIDR 相同的值。
3.根据需要自定义清单(https://docs.projectcalico.org/getting-started/kubernetes/installation/config-options)。
4.使用以下命令应用清单。
kubectl apply -f calico.yaml
默认部署的细节如下:

使用 Kubernetes API 数据存储安装 Calico,超过 50 个节点
1.下载 Kubernetes API 数据存储的 Calico 网络清单。
curl https://docs.projectcalico.org/manifests/calico-typha.yaml -o calico.yaml
2.如果您使用的是 pod CIDR 192.168.0.0/16,跳到下一步。 如果您在 kubeadm 中使用不同的 pod CIDR,则无需更改 - Calico 将根据运行配置自动检测 CIDR。 对于其他平台,请确保取消对清单中的 CALICO_IPV4POOL_CIDR 变量的注释,并将其设置为与您选择的 pod CIDR 相同的值。
3.将calico-typha命名的Deployment副本计数修改为所需的数量
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: calico-typha
...
spec:
...
replicas: <number of replicas>
我们建议每 200 个节点至少有一个副本,并且不超过 20 个副本。 在生产中,我们建议至少三个副本以减少滚动升级和故障的影响。 副本数应始终小于节点数,否则滚动升级将停止。
警告 :如果你设置 typha_service_name并设置 Typha 部署副本 计数到 0,Felix 将不会启动。
4.如果需要,自定义清单(https://docs.projectcalico.org/getting-started/kubernetes/installation/config-options)。
5.应用清单。
kubectl apply -f calico.yaml
部署的细节如下:

使用 etcd 数据存储安装 Calico
注意: 不建议将 etcd 数据库用于新安装。 但是,如果您将 Calico 作为 OpenStack 和 Kubernetes 的网络插件运行,则它是一个选项。
1.下载 etcd 的 Calico 网络清单。
curl https://docs.projectcalico.org/manifests/calico-etcd.yaml -o calico.yaml
2.如果您使用的是 pod CIDR 192.168.0.0/16,跳到下一步。 如果您在 kubeadm 中使用不同的 pod CIDR,则无需更改 - Calico 将根据运行配置自动检测 CIDR。 对于其他平台,请确保取消对清单中的 CALICO_IPV4POOL_CIDR 变量的注释,并将其设置为与您选择的 pod CIDR 相同的值。
3.在 calico-config 命名的 ConfigMap 里面,设置 etcd_endpoints 值到您的 etcd 服务器的 IP 地址和端口。
提示 :您可以指定多个 etcd_endpoint,使用逗号作为分隔符。
4.如果需要,可以 自定义清单(https://docs.projectcalico.org/getting-started/kubernetes/installation/config-options)。
5.使用以下命令应用清单。
kubectl apply -f calico.yaml
部署的细节如下:


浙公网安备 33010602011771号