【K8s網絡】安裝Calico系統要求


參考:https://docs.projectcalico.org/getting-started/kubernetes/requirements

節點要求

  • x86-64、arm64、ppc64le 或 s390x 處理器

  • 具有 Linux 內核 3.10 或更高版本 所需依賴項的 。 以下發行版具有所需的內核及其依賴項,並且是 已知與 Calico 和 Kubernetes 配合良好。

    • RedHat Linux 7
    • CentOS 7
    • CoreOS Container Linux stable
    • Ubuntu 16.04
    • Debian 8
  • Calico 必須能夠管理主機上的cali接口。 當 IPIP 是 啟用(默認),Calico 也需要能夠管理 tunl接口。 啟用 VXLAN 后,Calico 還需要能夠管理 vxlan.calico界面。

注意 :許多 Linux 發行版都包含 NetworkManager。 默認情況下,NetworkManager 不允許 Calico 管理接口。 如果您的節點具有 NetworkManager,在安裝 Calico 之前請完成以下步驟 防止 NetworkManager 控制 Calico 接口。

NetworkManager 操作默認網絡中接口的路由表 命名空間,其中 Calico veth 對被錨定以連接到容器。 這會干擾 Calico 代理正確路由的能力。

在以下位置創建配置文件 /etc/NetworkManager/conf.d/calico.conf阻止 NetworkManager 干擾接口:

[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:tunl*;interface-name:vxlan.calico

  • 如果您的 Linux 發行版附帶已安裝的 Firewalld 或其他 iptables 管理器,則應將其禁用。 這些可能會干擾 Calico 添加的規則並導致意外行為。

注意 : 如果需要主機防火牆,可以通過 Calico HostEndpoint 和 GlobalNetworkPolicy 進行配置。

鍵/值存儲

Calico v3.20 需要一個所有Calico組件都可以訪問的鍵/值存儲。 在 Kubernetes 上,您可以將 Calico 配置為直接訪問 etcdv3 集群或 使用 Kubernetes API 數據存儲。

網絡要求

確保您的主機和防火牆根據您的配置允許必要的流量。

特權

確保 Calico 具有 CAP_SYS_ADMIN 特權。

提供必要特權的最簡單方法是以 root 身份或在特權容器中運行 Calico。 當作為 Kubernetes 守護進程集安裝時,Calico 通過作為特權容器。 這需要允許 kubelet 以特權方式運行容器。 使用 pod 安全策略可以實現這一點。

Kubernetes 要求

支持的版本

我們針對以下 Kubernetes 版本測試 Calico v3.20。

  • v1.19
  • v1.20
  • v1.21

由於 Kubernetes API 的變化,Calico v3.20 將無法運行 在 Kubernetes v1.15 或更低版本上。 v1.16-v1.18 可能有效,但不再進行測試。 較新的版本也可以使用,但我們建議升級到 Calico 版本 這是針對較新的 Kubernetes 版本進行測試的。

啟用 CNI 插件

Calico 作為 CNI 插件安裝。 kubelet 必須配置 通過傳遞 --network-plugin=cni 使用 CNI 網絡。 (在 kubeadm,這是默認設置。)

其他網絡提供商

Calico 必須是每個集群中唯一的網絡提供商。 我們的確是當前不支持將具有其他網絡提供商的集群遷移到 使用 Calico 網絡。

支持的 kube-proxy 模式

Calico 支持以下 kube-proxy 模式:

IP池配置

為 pod IP 地址選擇的 IP 范圍不能與您網絡中的 IP 范圍任何其他 IP 地址重疊 ,包括:

  • Kubernetes 服務集群 IP 范圍
  • 分配主機 IP 的范圍

應用層策略要求

  • MutatingAdmissionWebhook 啟用
  • Istio v1.0 、 v1.1 、 v1.2 、 v1.3 、 v1.6 或 v1.7

請注意,Kubernetes 1.16+ 版需要 Istio 1.2 版或更高版本。 請注意,Istio 1.7 版需要 Kubernetes 1.16+ 版。

內核依賴

提示 :如果您正在使用推薦的發行版之一,您將已經滿足這些。

ip_set
ip_tables(對於 IPv4)
ip6_tables(對於 IPv6)
ipt_REJECT
ipt_rpfilter
ipt_set
nf_conntrack_netlink子系統
nf_conntrack_proto_sctp
sctp
xt_addrtype
xt_comment
xt_conntrack
xt_icmp(對於 IPv4)
xt_icmp6(對於 IPv6)
xt_ipvs, ipt_ipvs
xt_mark
xt_multiport
xt_rpfilter
xt_sctp
xt_set
xt_u32
xt_bpf(對於 eBPF)
vfio-pci
ipip(如果在 IPIP 模式下使用 Calico 網絡)
wireguard(如果使用 WireGuard 加密)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM