企業(yè)網(wǎng)站系統(tǒng)seo行業(yè)
本文內(nèi)容均來自個人筆記并重新梳理,如有錯誤歡迎指正!
如果對您有幫助,煩請點贊、關(guān)注、轉(zhuǎn)發(fā)、訂閱專欄!
專欄訂閱入口
|?精選文章?|?Kubernetes?| Docker | Linux?| 羊毛資源?|?工具推薦?|
往期精彩文章
【Docker】(全網(wǎng)首發(fā))Kylin V10 下 MySQL 容器內(nèi)存占用異常的解決方法
【Docker】(全網(wǎng)首發(fā))Kylin V10 下 MySQL 容器內(nèi)存占用異常的解決方法(續(xù))
【K8s】專題十五(3):Kubernetes 網(wǎng)絡(luò)之 Calico 插件理論
目錄
一、安裝流程
1、安裝?Tigera Operator
2、安裝?Calico
二、切換網(wǎng)絡(luò)模式
1、切換為 IPIP 模式(默認模式)
2、切換為 VXLAN 模式
3、切換為 BGP 模式
4、切換為 CrossSubnet 模式
三、卸載流程
1、刪除資源對象
2、刪除虛擬網(wǎng)卡
3、刪除 CNI 配置文件
4、重啟 kubelet 服務(wù)
前文【K8s】專題十五(3):Kubernetes 網(wǎng)絡(luò)之 Calico 插件理論?對 Calico 插件的相關(guān)理論進行了精簡介紹,本文將繼續(xù)介紹通過 Tigera Operator 安裝 Calico 插件的流程,以及 Calico 如何切換網(wǎng)絡(luò)模式、Calico 卸載流程。
一、安裝流程
1、安裝?Tigera Operator
Tigera Operator 通過將 Kubernetes API 封裝為 CRD(Custom Resource Definition)對象,為 Calico 提供生命周期管理。
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.29.0/manifests/tigera-operator.yaml# 說明:由于 CRD 包較大,若使用 kubectl apply 可能會超出請求限制,需要使用 kubectl create 或 kubectl replace
2、安裝?Calico
cat > custom-resources.yaml <<EOF
---
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:name: default
spec:calicoNetwork:ipPools:- name: default-ipv4-ippoolcidr: 10.10.0.0/16blockSize: 26 # 默認配置encapsulation: IPIP # 默認配置natOutgoing: Enabled # 默認配置nodeSelector: all() # 默認配置nodeAddressAutodetectionV4:interface: "eth.*|en.*"bgp: EnabledhostPorts: EnabledlinuxDataplane: IptablesmultiInterfaceMode: None
---
apiVersion: operator.tigera.io/v1
kind: APIServer
metadata:name: default
spec: {}EOFkubectl create -f custom-resources.yaml# 說明:默認在 calico-system 命名空間中創(chuàng)建 Installation 類型、APIServer 類型對象
custom-resources.yaml 參數(shù)說明文檔:
https://docs.tigera.io/calico/latest/reference/installation/api#operator.tigera.io/v1.Installation
https://docs.tigera.io/archive/v3.21/reference/installation/api#operator.tigera.io/v1.InstallationSpec
二、切換網(wǎng)絡(luò)模式
1、切換為 IPIP 模式(默認模式)
# 修改 Calico 配置
kubectl edit ippool
1)將 ipipMode 改為 Always(即啟用 IPIP 模式)
2)將 vxlanMode 改為 Never(即禁用 VXLAN 模式)# 重啟 calico-node
kubectl rollout restart deploy calico-node -n calico-system# 效果驗證
route -n # IPIP 模式下會出現(xiàn) tunl0 設(shè)備
2、切換為 VXLAN 模式
# 修改 Calico 配置
kubectl edit ippool
1)將 ipipMode 改為 Never(即禁用 IPIP 模式)
2)將 vxlanMode 改為 Always(即啟用 VXLAN 模式)# 重啟 calico-node
kubectl rollout restart deploy calico-node -n calico-system# 效果驗證
route -n # VXLAN 模式下會出現(xiàn) vxlan.calico 設(shè)備
3、切換為 BGP 模式
# 修改 Calico 配置
kubectl edit ippool
1)將 ipipMode 改為 Always(即禁用 IPIP 模式)
2)將 vxlanMode 改為 Always(即禁用 VXLAN 模式)# 重啟 calico-node
kubectl rollout restart deploy calico-node -n calico-system# 效果驗證
route -n # BGP 模式下不會出現(xiàn) tunl0 或 vxlan.calico 設(shè)備
4、切換為 CrossSubnet 模式
# 修改 Calico 配置
kubectl edit ippool
1)將 ipipMode 或 vxlanMode 改為 CrossSubnet
2)將 改為 Always(即啟用 VXLAN 模式)# 重啟 calico-node
kubectl rollout restart deploy calico-node -n calico-system🔔 CrossSubnet 模式:此為混合模式,同網(wǎng)段通信使用 BGP 模式,跨網(wǎng)段通信使用 IPIP 或 VXLAN 模式
三、卸載流程
1、刪除資源對象
kubectl delete -f custom-resources.yaml
kubectl delete -f tigera-operator.yaml
2、刪除虛擬網(wǎng)卡
# 在所有主機上執(zhí)行
modprobe -r ipip # 刪除 IPIP 模式虛擬網(wǎng)卡
modprobe -r vxlan # 刪除 VXLAN 模式虛擬網(wǎng)卡
3、刪除 CNI 配置文件
# 在所有主機上執(zhí)行
rm -rf /var/lib/cni/ && rm -rf /etc/cni/net.d/*
4、重啟 kubelet 服務(wù)
# 在所有主機上執(zhí)行
systemctl restart kubelet