0
点赞
收藏
分享

微信扫一扫

部署 Calico v3.26.1

伽马星系 2023-11-01 阅读 60

系统要求

节点要求

1. Calico必须能够管理主机上的cali*接口。当启用IPIP(默认)时,Calico还需要能够管理tunl*接口。启用VXLAN时,Calico还需要能够管理VXLAN.Calico接口。
2. Linux内核3.10或更高版本。
3. 如果您的Linux发行版附带安装了Firewalld或其他iptables管理器,则应将其禁用。这些可能会干扰Calico添加的规则,并导致意外行为。

网络要求

配置

主机

连接类型

端口/协议

Calico网络 (BGP)

全部节点

Bidirectional

TCP 179

启用 IP-in-IP 的Calico网络(默认)

全部节点

Bidirectional

IP-in-IP,通常用其协议号4表示

启用 VXLAN 的Calico网络

全部节点

Bidirectional

UDP 4789

启用 Typha 的Calico网络

Typha 客户端节点

Incoming

TCP 5473(默认)

启用 IPv4 Wireguard 的Calico网络

全部节点

Bidirectional

UDP 51820(默认)

启用 IPv6 Wireguard 的Calico网络

全部节点

Bidirectional

UDP 51821(默认)

flannel 网络 (VXLAN)

全部节点

Bidirectional

UDP 4789

All

kube-apiserver 主机

Incoming

通常是 TCP 443 或 6443

etcd 数据存储

etcd 主机

Incoming

TCP 2379 

kubernetes 版本要求

v1.24
v1.25
v1.26
v1.27

Calico 最佳网络模式

推荐方案

Policy

IPAM

CNI

Overlay

Routing

Calico

Calico

Calico

VXLAN

Calico

替代方案

Policy

IPAM

CNI

Overlay

Routing

Calico

Calico

Calico

IPIP

BGP

通用方案

不确定网络模式,可以选择几乎可以在任何环境中以VXLAN + overlay模式运行Calico 网络模式。

Policy

IPAM

CNI

Overlay

Routing

Calico

Calico

Calico

VXLAN

Calico

Calico 部署方式

Calico部署方式有两种:operator部署和清单方式部署。

Calico operator

Calico由operator安装,该operator负责管理Calico集群的安装、升级和一般生命周期。operator作为Deployment直接安装在集群上,并通过一个或多个自定义Kubernetes API资源进行配置。

Calico manifests

Calico也可以使用原始清单作为operator的替代品进行安装。清单包含在Kubernetes集群中的每个节点上安装Calico所需的资源。不建议使用清单,因为它们不能像operator那样自动管理Calico的生命周期。然而,清单可能对需要对底层Kubernetes资源进行高度特定修改的集群有用。

使用operator 部署 Calico

默认网络模型

Policy

IPAM

CNI

Overlay

Routing

Datastore

Calico

Calico

Calico

IPIP

BGP

Kubernetes API

Operator 安装 

# kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/tigera-operator.yaml

下载配置 Calico 所需的自定义资源

# curl https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/custom-resources.yaml -O

安装 Calico

# kubectl create -f custom-resources.yaml

使用manifests 部署Calico

Calico 使用Kubernetes API作为数据存储且集群节点少于等于50个

1. 下载Calico 清单

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

2. 如果您使用的是 pod CIDR 192.168.0.0/16,请跳至下一步。如果您在 kubeadm 中使用不同的 pod CIDR,则无需进行任何更改 - Calico 将根据运行配置自动检测 CIDR。对于其他平台,请确保取消注释清单中的 CALICO_IPV4POOL_CIDR 变量,并将其设置为与您选择的 pod CIDR 相同的值。

3. 根据需要自定义清单

4. 应用清单

# kubectl apply -f calico.yaml

默认网络模型

Policy

IPAM

CNI

Overlay

Routing

Datastore

Calico

Calico

Calico

IPIP

BGP

Kubernetes API

Calico 使用Kubernetes API作为数据存储且集群节点大于50个

1. 下载Calico 清单

curl https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/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-typa的部署中将副本计数修改为所需的数字。

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: calico-typha
  ...
spec:
  ...
  replicas: <number of replicas>

我们建议每 200 个节点至少有 1 个副本,并且不超过 20 个副本。在生产中,我们建议至少三个副本,以减少滚动升级和故障的影响。副本数量应始终小于节点数量,否则滚动升级将停止。此外,只有当 Typha 实例少于节点数时,Typha 才有助于扩展。

如果设置typa_service_name并将typha部署副本计数设置为0,则Felix将不会启动。

4. 如果需要,可以自定义清单。

5. 应用清单

# kubectl apply -f calico.yaml

默认网络模型

Policy

IPAM

CNI

Overlay

Routing

Datastore

Calico

Calico

Calico

IPIP

BGP

Kubernetes API

Calico 使用etcd作为数据存储

1. 下载Calico 清单

curl https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/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. 在ConfigMap中的calico-config,将etcd_endpoints的值设置为 etcd 服务器的 IP 地址和端口。可以使用逗号作为分隔符来指定多个etcd_endpoint。

4. 根据需要自定义清单

4. 应用清单

# kubectl apply -f calico.yaml

默认网络模型

Policy

IPAM

CNI

Overlay

Routing

Datastore

Calico

Calico

Calico

IPIP

BGP

etcd

验证集群中的 Calico 

# watch kubectl get pods -n calico-system

NAMESPACE     NAME                READY   STATUS                  RESTARTS         AGE
kube-system   calico-node-txngh   1/1     Running                   0              54s

参考文档

https://docs.tigera.io/calico/latest/getting-started/kubernetes/self-managed-onprem/onpremises



举报

相关推荐

0 条评论