国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

Kubernetes 網絡插件 Calico 完全運維指南
2022-06-01   

適用范圍

本文檔測試范圍:

概述

Calico 是一種開源網絡和網絡安全解決方案,適用于容器,虛擬機和基于主機的本機工作負載。Calico 支持廣泛的平臺,包括 Kubernetes,docker,OpenStack 和裸機服務。Calico 后端支持多種網絡模式。

  • BGP 模式:將節點做為虛擬路由器通過 BGP 路由協議來實現集群內容器之間的網絡訪問。
  • IPIP 模式:在原有 IP 報文中封裝一個新的 IP 報文,新的 IP 報文中將源地址 IP 和目的地址 IP 都修改為對端宿主機 IP。
  • cross-subnet:Calico-ipip 模式和 calico-bgp 模式都有對應的局限性,對于一些主機跨子網而又無法使網絡設備使用 BGP 的場景可以使用 cross-subnet 模式,實現同子網機器使用 calico-BGP 模式,跨子網機器使用 calico-ipip 模式。

calico 切換 BGP 模式

部署完成后默認使用 calico-ipip 的模式,通過在節點的路由即可得知,通往其他節點路由通過 tunl0 網卡出去

修改為 BGP 網絡模式,在 system 項目中修改 calico-node daemonset

修改CALICO_IPV4POOL_IPIP改為 off,添加新環境變量FELIX_IPINIPENABLED為 false

修改完成后對節點進行重啟,等待恢復后查看主機路由,與 ipip 最大區別在于去往其他節點的路由,由 Tunnel0 走向網絡網卡。

calico 切換 cross-subnet 模式

Calico-ipip 模式和 calico-bgp 模式都有對應的局限性,對于一些主機跨子網而又無法使網絡設備使用 BGP 的場景可以使用 cross-subnet 模式,實現同子網機器使用 calico-BGP 模式,跨子網機器使用 calico-ipip 模式。

部署集群網絡選擇 calico 網絡插件

默認部署出來是 calico 的 ip-in-ip 的模式 查看宿主機網卡,會發現多了個 tunl0 網卡,這個是建立 ip 隧道的網卡

去其他主機的路由都是走 tunl0 網卡出去

切換到 cross-subnet 模式

kubectl edit ipPool/default-ipv4-ippool
  • 1.

將 ipipMode 改為 crossSubnet

在 UI 將 calico-node 的 POD 刪了重建

重啟檢查 calico 網絡

可以看見同子網的主機出口走的是 bgp,不同子網主機走的是 tunl0 網卡走 ipip 模式

創建應用測試跨主機網絡,在不同主機上互相 ping 測試,看看跨主機網絡是否正常。

配置 Route reflector

安裝 calicoctl

安裝方式有以下幾種

  • Single host 上面 binary 安裝
  • Single host 上面 continer 安裝
  • 作為 k8s pod 運行

實際經驗:

Binary 方式在集群里面的一臺 worker 節點安裝(比如 RR),calicoctl 會檢測 bird/felix 的運行狀態。在非 calico node 節點運行只能使用部分命令,不能運行 calico node 相關命令。

通過配置 calicoctl 來對 calico 進行控制,通常情況下建議將

curl -O -L  https://github.com/projectcalico/calicoctl/releases/download/v3.13.3/calicoctl
  • 1.

配置可執行權限

chmod +x calicoctl
  • 1.

復制的/usr/bin/目錄

cp calicoctl /usr/bin/
  • 1.

配置 calicoctl 連接 Kubernetes 集群

export CALICO_DATASTORE_TYPE=kubernetes
export CALICO_KUBECONFIG=~/.kube/config
calicoctl node status
  • 1.
  • 2.
  • 3.

calico node-to-node mesh

默認情況下 calico 采用 node-to-node mesh 方式 ,為了防止 BGP 路由環路,BGP 協議規定在一個 AS(自治系統)內部,IBGP 路由器之間只能傳一跳路由信息,所以在一個 AS 內部,IBGP 路由器之間為了學習路由信息需要建立全互聯的對等體關系,但是當一個 AS 規模很大的時候,這種全互聯的對等體關系維護會大量消耗網絡和 CPU 資源,所以這種情況下就需要建立路由反射器以減少 IBGP 路由器之間的對等體關系數量。

Route reflector 角色介紹

早期 calico 版本提供專門的 route reflector 鏡像,在新版本 calico node 內置集成 route reflector 功能。Route reflector 可以是以下角色:

  • 集群內部的 node 節點
  • 集群外部節點運行 calico node
  • 其他支持 route reflector 的軟件或者設備。

這里以一個集群內部的 node 節點為例:

關閉 node-to-node mesh

cat <<EOF | calicoctl apply -f -
apiVersion: projectcalico.org/v3
kind: BGPConfiguration
metadata:
name: default
spec:
 logSeverityScreen: Info
 nodeToNodeMeshEnabled: false
 asNumber: 63400
EOF
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

設置 Route reflector

配置 Route reflector 支持多種配置方式如:1、支持配置全局 BGP peer,。2、支持針對單個節點進行配置 BGP Peer。也可以將 calico 節點充當 Route reflector 這里以配置 calico 節點充當 Router reflector 為例。

配置節點充當 BGP Route Reflector

可將 Calico 節點配置為充當路由反射器。為此,要用作路由反射器的每個節點必須具有群集 ID-通常是未使用的 IPv4 地址。

要將節點配置為集群 ID 為 244.0.0.1 的路由反射器,請運行以下命令。這里將節點名為 rke-node4 的節點配置為 Route Reflector,若一個集群中要配置主備 rr,為了防止 rr 之間的路由環路,需要將集群 ID 配置成一樣

calicoctl patch node rke-node4 -p '{"spec": {"bgp": {"routeReflectorClusterID": "244.0.0.1"}}}'
  • 1.

給節點打上對應的 label 標記該節點以表明它是 Route Reflector,從而允許 BGPPeer 資源選擇它。

kubectl label node rke-node4 route-reflector=true
  • 1.

創建 BGPPeer

export CALICO_DATASTORE_TYPE=kubernetes
export CALICO_KUBECONFIG=~/.kube/config
cat <<EOF | calicoctl apply -f -
kind: BGPPeer
apiVersion: projectcalico.org/v3
metadata:
 name: peer-with-route-reflectors
spec:
 nodeSelector: all()
 peerSelector: route-reflector == 'true'
EOF
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

查看 BGP 節點狀態

node 上查看,peer type 由 node-to-node mesh 變為 node specific

Route Reflector 上節點查看,節點已正常建立連接

設置 veth 網卡 mtu

通常,通過使用最高 MTU 值(不會在路徑上引起碎片或丟包)來實現最高性能。對于給定的流量速率,最大帶寬增加,CPU 消耗可能下降。對于一些支持 jumbo frames 的網絡設備,可以配置 calico 支持使用。

下表列舉了,常見幾種 MTU 配置下 calico 對應的網卡 mtu 的配置

IPIP 和 VXLAN 協議中的 IP 中使用的額外報文頭,通過頭的大小減小了最小 MTU。(IP 中的 IP 使用 20 字節的標頭,而 VXLAN 使用 50 字節的標頭)。

如果在 Pod 網絡中的任何地方使用 VXLAN,請將 MTU 大小配置為“物理網絡 MTU 大小減去 50”。如果僅在 IP 中使用 IP,則將 MTU 大小配置為“物理網絡 MTU 大小減去 20” 。

將工作負載端點 MTU 和隧道 MTU 設置為相同的值

配置方法:

升級集群

配置網卡 MTU,此時通過 system 項目下 calico-config 文件可以看見對應的 mtu 設置

創建 workload 查看 POD 網卡 MTU 為 9001

設置全局 AS 號

默認情況下,除非已為節點指定每個節點的 AS,否則所有 Calico 節點都使用 64512 自治系統。可以通過修改默認的 BGPConfiguration 資源來更改所有節點的全局默認值。以下示例命令將全局默認 AS 編號設置為 64513。

cat <<EOF | calicoctl apply -f -
apiVersion: projectcalico.org/v3
kind: BGPConfiguration
metadata:
 name: default
spec:
 logSeverityScreen: Info
 nodeToNodeMeshEnabled: false
 asNumber: 64513
EOF
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

設置單個主機和 AS 號

例如,以下命令將名為 node-1 的節點更改為屬于 AS 64514。

calicoctl patch node node-1 -p '{"spec": {"bgp": {“asNumber”: “64514”}}}'
  • 1.

修改節點地址范圍

此操作建議在部署完集群后立刻進行。

默認情況下 calico 在集群層面分配一個 10.42.0.0/16 的 CIDR 網段,在這基礎上在單獨為每個主機劃分一個單獨子網采用 26 位子網掩碼對應的集群支持的節點數為 2^10=1024 節點,單個子網最大支持 64 個 POD,當單個子網對應 IP 消耗后,calico 會重新在本機上劃分一個新的子網如下,在集群對端主機可以看見對應的多個 CIDR 路由信息。

注意:塊大小將影響節點 POD 的 IP 地址分配和路由條目數量,如果主機在一個 CIDR 中分配所有地址,則將為其分配一個附加 CIDR。如果沒有更多可用的塊,則主機可以從分配給其他主機的 CIDR 中獲取地址。為借用的地址添加了特定的路由,這會影響路由表的大小。

將塊大小從默認值增加(例如,使用/24 則為每個塊提供 256 個地址)意味著每個主機更少的塊,會減少路由。但是對應的集群可容納主機數也對應減少為 2^8。

從默認值減小 CIDR 大小(例如,使用/28 為每個塊提供 16 個地址)意味著每個主機有更多 CIDR,因此會有更多路由。

calico 允許用戶修改對應的 IP 池和集群 CIDR

創建和替換步驟

注意:刪除 Pod 時,應用程序會出現暫時不可用

  • 添加一個新的 IP 池。
  • 注意:新 IP 池必須在同一群集 CIDR 中。
  • 禁用舊的 IP 池(注意:禁用 IP 池只會阻止分配新的 IP 地址。它不會影響現有 POD 的聯網)
  • 從舊的 IP 池中刪除 Pod。
  • 驗證新的 Pod 是否從新的 IP 池中獲取地址。
  • 刪除舊的 IP 池。

定義 ippool 資源

apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
 name: my-ippool
spec:
 blockSize: 24
 cidr: 192.0.0.0/16
 ipipMode: Always
 natOutgoing: true
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

修改對應的 blockSize 號

創建新的

calicoctl apply -f pool.yaml
  • 1.

將舊的 ippool 禁用

calicoctl patch ippool default-ipv4-ippool -p '{"spec": {"disabled": “true”}}'
  • 1.

創建 workload 測試

根據節點標簽定義對應的 ippool

Calico 能夠進行配置,為不同拓撲指定 IP 地址池。例如可能希望某些機架、地區、或者區域能夠從同一個 IP 池中獲取地址。這對于降低路由數量或者配合防火墻策略的要求會很有幫助。

給節點配置對應 label

kubectl label nodes kube-node-0 rack=0
kubectl label nodes kube-node-1 rack=1
  • 1.
  • 2.

通過標簽定義對應的節點 IPpool

calicoctl create -f -<<EOF
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
 name: rack-0-ippool
spec:
 cidr: 192.168.0.0/24
 ipipMode: Always
 natOutgoing: true
 nodeSelector: rack == "0"
EOF
calicoctl create -f -<<EOF
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
 name: rack-1-ippool
spec:
 cidr: 192.168.1.0/24
 ipipMode: Always
 natOutgoing: true
 nodeSelector: rack == "1"
EOF
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

關閉 SNAT

默認情況下,calico 訪問集群外網絡是通過 SNAT 成宿主機 ip 方式,在一些金融客戶環境中為了能實現防火墻規則,需要直接針對 POD ip 進行進行規則配置,所以需要關閉 natOutgoing

kubectl edit ippool/default-ipv4-ippool
  • 1.

將 natOutgoing: true修改為natOutgoing: false

此時,calico 網絡訪問集群外的 ip 源 ip 就不會 snat 成 宿主機的 ip 地址。

固定 POD IP

固定單個 ip

apiVersion: apps/v1
kind: Deployment
metadata:
 name: nginx-test
spec:
 selector:
   matchLabels:
     app: nginx
 replicas: 1 # tells deployment to run 1 pods matching the template
 template:
   metadata:
     labels:
       app: nginx
     annotations:
       "cni.projectcalico.org/ipAddrs": "[\"10.42.210.135\"]"
   spec:
     containers:
     - name: nginx
       image: nginx:1.7.9
       ports:
       - containerPort: 80
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

固定多個 ip,只能通過 ippool 的方式。

cat ippool1.yaml
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
 name: pool-1
spec:
 blockSize: 31
 cidr: 10.21.0.0/31
 ipipMode: Never
 natOutgoing: true
apiVersion: apps/v1
kind: Deployment
metadata:
 name: nginx-test
spec:
 selector:
   matchLabels:
     app: nginx
 replicas: 1 # tells deployment to run 1 pods matching the template
 template:
   metadata:
     labels:
       app: nginx
     annotations:
       "cni.projectcalico.org/ipv4pools": "[\"pool-1\"]"
   spec:
     containers:
     - name: nginx
       image: nginx:1.7.9
       ports:
       - containerPort: 80
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.

原文鏈接:??https://www.bladewan.com/2020/11/18/calico_ops/?

熱詞搜索:

上一篇:為什么需要帶寬監控工具?
下一篇:與DevOps緊綁才算實現運維自動化嗎?接地氣的運維自動化什么樣?

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
一区二区三区不卡视频在线观看 | 日本一区二区三区在线不卡| 久久久久久久久久电影| 夜夜嗨av一区二区三区四季av| 污片在线观看一区二区| 国产乱一区二区| 欧美人动与zoxxxx乱| 中文字幕亚洲视频| 午夜精品久久久久久久99水蜜桃| 成人黄色软件下载| 欧美一区二区精品| 亚洲图片你懂的| 国产精品一区二区三区网站| 91精品婷婷国产综合久久竹菊| 自拍偷拍亚洲综合| 国产一区二区三区日韩| 欧洲另类一二三四区| 欧美极品少妇xxxxⅹ高跟鞋 | 五月婷婷综合在线| 91免费视频观看| 国产精品久久毛片av大全日韩| 日韩精品免费专区| 欧美偷拍一区二区| 日本一区二区成人| 亚洲国产成人91porn| 色综合天天在线| 欧美韩国一区二区| 丁香网亚洲国际| 精品乱人伦一区二区三区| 蜜桃av一区二区在线观看| 欧美伊人久久久久久午夜久久久久| 亚洲美女屁股眼交3| 国产91清纯白嫩初高中在线观看| 日韩一区二区三区精品视频 | 懂色av一区二区三区蜜臀| 精品国产乱子伦一区| 视频一区中文字幕国产| 欧美一区二区三区在线观看视频| 一区二区三区在线观看视频| 日韩成人精品在线| 欧美高清激情brazzers| 亚洲线精品一区二区三区| 欧美视频你懂的| 亚洲一区二区综合| 在线不卡a资源高清| 亚洲国产另类精品专区| 日韩午夜中文字幕| 青青草成人在线观看| 九九精品视频在线看| 久久久精品中文字幕麻豆发布| 久久精品国产色蜜蜜麻豆| 国产欧美日韩不卡免费| 国产成a人无v码亚洲福利| 亚洲欧美色综合| 91国偷自产一区二区开放时间| 亚洲综合久久av| 欧美专区日韩专区| 精品制服美女丁香| 久久久青草青青国产亚洲免观| 亚洲成人福利片| 欧美成人乱码一区二区三区| 麻豆91精品视频| 国产精品高潮呻吟久久| 一本一本久久a久久精品综合麻豆| 亚洲一区二区三区激情| 884aa四虎影成人精品一区| 国产综合久久久久久久久久久久| 国产无一区二区| 欧美性色综合网| 日韩av电影免费观看高清完整版| www国产成人免费观看视频 深夜成人网| 国产成人综合网| 亚洲国产日韩一区二区| 日韩一区二区三区在线视频| 不卡大黄网站免费看| 亚洲美女精品一区| 欧美卡1卡2卡| 国产永久精品大片wwwapp| 亚洲精品国产视频| 日韩美女在线视频| 欧美综合欧美视频| 精品一区二区三区免费| 亚洲午夜免费电影| 精品久久久久一区| 日韩美女在线视频| 懂色av一区二区三区免费看| 亚洲色图欧洲色图| 欧美一级在线免费| 国产成人精品免费看| 亚洲综合偷拍欧美一区色| 日韩欧美亚洲一区二区| 成人伦理片在线| 精品在线一区二区三区| 日韩一区二区高清| 国产成人免费视频网站| 成人免费va视频| 亚洲444eee在线观看| 亚洲精品一区二区在线观看| 欧美日韩免费在线视频| 美美哒免费高清在线观看视频一区二区 | 9色porny自拍视频一区二区| 午夜国产精品一区| 欧美国产日韩精品免费观看| 91视视频在线观看入口直接观看www | 在线视频中文字幕一区二区| 激情文学综合丁香| 日韩极品在线观看| 久久久久久影视| 欧美男男青年gay1069videost| 国产精品资源站在线| 免费观看在线综合色| 亚洲精品第1页| 国产精品免费久久| 欧美日韩精品三区| 国产成人av一区二区三区在线观看| 亚洲丰满少妇videoshd| 国产色产综合色产在线视频| 欧美日韩一二区| 91视频一区二区三区| 奇米影视一区二区三区| 在线91免费看| 日本韩国欧美国产| 色偷偷一区二区三区| 中文字幕一区二区三区色视频| 91精品在线观看入口| 欧美网站一区二区| 午夜精品在线视频一区| 国产精品福利一区| 在线免费精品视频| 色综合激情久久| 国产亚洲综合色| 国产精品视频一二三区| 国产美女一区二区| 日韩一二在线观看| 裸体一区二区三区| 色婷婷av一区二区三区软件| 一级做a爱片久久| 99久久综合国产精品| 欧美精品久久一区二区三区| 国产精品理论在线观看| 成人国产精品免费观看| 亚洲一区二区视频在线| 亚洲va天堂va国产va久| 91麻豆精品国产91久久久使用方法 | 专区另类欧美日韩| 成人精品一区二区三区四区 | 国产一区二区三区精品视频| 久久人人爽人人爽| 国产精品资源站在线| 亚洲人午夜精品天堂一二香蕉| 91网站视频在线观看| 爽爽淫人综合网网站| 91麻豆精品国产综合久久久久久| 久久99蜜桃精品| 久久尤物电影视频在线观看| 99国产精品视频免费观看| 亚洲少妇屁股交4| 日韩免费高清av| 日韩电影在线免费| 色视频一区二区| 亚洲第四色夜色| 91黄色激情网站| 久久 天天综合| 日韩精品一区二区三区老鸭窝| 激情深爱一区二区| 日本一区二区免费在线观看视频| 欧美午夜精品理论片a级按摩| 亚洲一区二区三区在线播放| 久久久久久久久久久久久夜| 91麻豆精品视频| 日本免费新一区视频| 久久久久久久久免费| 欧美午夜精品久久久久久孕妇| 日韩国产成人精品| 亚洲特级片在线| 91精品国产高清一区二区三区蜜臀| 精品中文字幕一区二区小辣椒| 欧美激情在线一区二区| 这里只有精品视频在线观看| 国产在线精品一区二区三区不卡 | 欧美一区二区三区在| 粉嫩久久99精品久久久久久夜| 五月天激情综合| 久久久久国产精品麻豆| 欧美一区二区私人影院日本| 丰满白嫩尤物一区二区| 色综合久久久久| 九色|91porny| 美女国产一区二区三区| 亚洲人妖av一区二区| 国产精品色在线观看| 日韩一二三区不卡| 欧美美女黄视频| www.久久精品| 国产凹凸在线观看一区二区| 午夜精品福利久久久| 中文字幕色av一区二区三区| 8v天堂国产在线一区二区| 国产999精品久久久久久| 蜜臀久久99精品久久久画质超高清 |