国产一级一区二区_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久久夜色精品国产_欧美色网一区二区
国产日韩精品久久久| 日本一区二区三区四区| 欧美变态tickle挠乳网站| 日韩综合在线视频| 欧美精品视频www在线观看| 一区二区三区四区在线播放| 91久久人澡人人添人人爽欧美| 亚洲日本在线看| 欧美日韩中文另类| 日韩国产在线观看一区| 日韩女优av电影| 国产一区二区精品久久91| 国产精品久久久久久亚洲伦| 91免费版在线| 午夜精品久久久| 国产夜色精品一区二区av| 91视频精品在这里| 午夜婷婷国产麻豆精品| 久久综合九色综合97_久久久| 成人丝袜高跟foot| 亚洲高清免费观看 | 97se亚洲国产综合在线| 热久久免费视频| 亚洲丝袜精品丝袜在线| 欧美另类一区二区三区| 国产高清在线精品| 视频一区二区国产| 日韩伦理av电影| 精品伦理精品一区| 欧美日韩亚洲国产综合| 91在线观看高清| 国产成人免费视频精品含羞草妖精 | 久久久国产一区二区三区四区小说 | 制服丝袜亚洲精品中文字幕| 高清不卡一二三区| 久久丁香综合五月国产三级网站| 亚洲图片欧美激情| 国产婷婷色一区二区三区四区| 911精品国产一区二区在线| www.色综合.com| 国产精品影视在线观看| 美女视频黄 久久| 亚洲成人av电影在线| 亚洲欧美综合在线精品| 国产欧美日韩不卡免费| 久久精品亚洲精品国产欧美| 精品理论电影在线| 欧美电影免费提供在线观看| 欧美日韩国产成人在线免费| 91国偷自产一区二区使用方法| 97久久超碰精品国产| 国产精品资源网| 国产盗摄精品一区二区三区在线| 久久激情综合网| 精品一区二区三区免费观看 | 欧美精品亚洲二区| 欧美日韩日日摸| 日韩一级高清毛片| 日韩欧美视频在线| 久久综合色综合88| 国产女人水真多18毛片18精品视频| 亚洲精品一区在线观看| 久久亚洲免费视频| 国产精品天美传媒沈樵| 中文字幕日韩av资源站| 亚洲精品一二三四区| 性做久久久久久久免费看| 日本在线播放一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 91精品久久久久久蜜臀| 欧美一区二区三区在线视频| 日韩三级电影网址| 中文字幕成人在线观看| 亚洲男人天堂av| 亚洲成人高清在线| 精彩视频一区二区三区| 成人午夜碰碰视频| 在线一区二区视频| 精品国产乱码久久久久久牛牛| 日本一区二区三区久久久久久久久不| 中文字幕中文字幕在线一区| 亚洲精品美腿丝袜| 蜜桃视频在线观看一区二区| 国产成人丝袜美腿| 欧美三级乱人伦电影| 久久综合久久鬼色中文字| 亚洲精品欧美二区三区中文字幕| 午夜婷婷国产麻豆精品| 国产精品456| 欧美日韩亚洲综合一区二区三区| 26uuu色噜噜精品一区二区| 亚洲精品写真福利| 激情深爱一区二区| 欧美乱熟臀69xxxxxx| 中文字幕在线不卡视频| 久久激情五月婷婷| 欧美日韩中文国产| 国产精品久久久久久久久快鸭 | 日韩中文字幕不卡| 福利一区在线观看| 在线91免费看| 亚洲一区二区在线观看视频| 国产黑丝在线一区二区三区| 宅男噜噜噜66一区二区66| 国产欧美一区二区精品忘忧草| 亚洲最新在线观看| 99久久精品国产一区二区三区| 精品欧美一区二区三区精品久久| 亚洲人一二三区| 国产激情精品久久久第一区二区| 欧美日韩国产成人在线免费| 亚洲同性gay激情无套| 国产精品1区二区.| 欧美精品一区二区三区四区| 天堂av在线一区| 欧美日韩一区三区四区| 自拍偷在线精品自拍偷无码专区| 久久成人精品无人区| 欧美精品少妇一区二区三区| 亚洲一二三区视频在线观看| 99久久国产综合精品女不卡| 国产精品久线在线观看| 国产成人综合亚洲91猫咪| 欧美精品一区二区三区蜜臀| 久久av老司机精品网站导航| 日韩欧美资源站| 麻豆国产精品777777在线| 91精品在线一区二区| 天天免费综合色| 69精品人人人人| 日本麻豆一区二区三区视频| 欧美二区在线观看| 日本不卡的三区四区五区| 91精品久久久久久久91蜜桃| 亚洲成人资源网| 日韩一区二区在线看| 激情另类小说区图片区视频区| 26uuu国产日韩综合| 国产馆精品极品| 亚洲欧美一区二区三区国产精品 | 自拍偷拍亚洲欧美日韩| 色国产综合视频| 午夜一区二区三区在线观看| 9191成人精品久久| 精品一区二区三区在线播放视频| 日韩限制级电影在线观看| 极品少妇xxxx精品少妇| 国产日韩欧美综合在线| 99久久久免费精品国产一区二区| 综合网在线视频| 欧美亚洲一区二区在线| 免费美女久久99| 国产欧美一区二区精品久导航 | 精品中文字幕一区二区小辣椒 | 国产激情一区二区三区四区| 国产精品日产欧美久久久久| 色婷婷综合久久久| 三级在线观看一区二区| 久久这里只精品最新地址| 99精品欧美一区二区三区小说| 亚洲综合精品自拍| 精品国产乱码久久久久久影片| av电影在线观看完整版一区二区| 亚洲综合在线第一页| 欧美mv和日韩mv国产网站| a在线播放不卡| 美腿丝袜亚洲三区| 亚洲狠狠丁香婷婷综合久久久| 91.麻豆视频| www.日韩大片| 国产原创一区二区三区| 一区二区三区四区乱视频| 精品国产伦一区二区三区观看体验| 99精品热视频| 国产一区二区视频在线| 夜夜揉揉日日人人青青一国产精品| 欧美精品一区二区在线播放| 在线日韩av片| 成人一区二区视频| 亚洲影视在线播放| 欧美国产精品专区| 91精品国产综合久久小美女| 91浏览器在线视频| 国产在线视视频有精品| 亚洲成人免费在线观看| 亚洲欧美综合另类在线卡通| 国产无一区二区| 久久免费精品国产久精品久久久久| 欧美色综合网站| 色系网站成人免费| 成人涩涩免费视频| 国产东北露脸精品视频| 激情深爱一区二区| 韩国女主播成人在线观看| 日韩精品欧美成人高清一区二区| 一区二区三区加勒比av| 亚洲免费电影在线| 亚洲欧美中日韩| 国产亚洲成av人在线观看导航| 欧美一区二区三区不卡|