Calico 網(wǎng)絡(luò)部署選項(xiàng)

Kubernetes 網(wǎng)絡(luò)基礎(chǔ)知識(shí)

Kubernetes 網(wǎng)絡(luò)模型定義了一個(gè)“平面”網(wǎng)絡(luò),其中:

  • 每個(gè) pod 都有自己的 IP 地址。

  • 任何節(jié)點(diǎn)上的 Pod 都可以在沒有 NAT 的情況下與所有其他節(jié)點(diǎn)上的所有 Pod 通信蝉揍。

這創(chuàng)建了一個(gè)干凈窘行、向后兼容的模型莹捡,從端口分配微驶、命名、服務(wù)發(fā)現(xiàn)睦疫、負(fù)載平衡害驹、應(yīng)用程序配置和遷移的角度來(lái)看,Pod 可以被視為虛擬機(jī)或物理主機(jī)蛤育⊥鸸伲可以使用網(wǎng)絡(luò)策略來(lái)定義網(wǎng)絡(luò)分段,以限制這些基本網(wǎng)絡(luò)功能內(nèi)的流量瓦糕。

在此模型中底洗,可以靈活地支持不同的網(wǎng)絡(luò)方法和環(huán)境。網(wǎng)絡(luò)實(shí)現(xiàn)的具體細(xì)節(jié)取決于所使用的 CNI咕娄、網(wǎng)絡(luò)和云提供商插件的組合亥揖。

CNI 插件

CNI(容器網(wǎng)絡(luò)接口)是一個(gè)標(biāo)準(zhǔn) API,它允許不同的網(wǎng)絡(luò)實(shí)現(xiàn)插入 Kubernetes圣勒。每當(dāng)創(chuàng)建或銷毀 pod 時(shí)费变,Kubernetes 都會(huì)調(diào)用 API。有兩種類型的 CNI 插件:

  • CNI 網(wǎng)絡(luò)插件:負(fù)責(zé)在 Kubernetes pod 網(wǎng)絡(luò)中添加或刪除 pod圣贸。這包括創(chuàng)建/刪除每個(gè) pod 的網(wǎng)絡(luò)接口以及將其與其余的網(wǎng)絡(luò)實(shí)現(xiàn)連接/斷開挚歧。

  • CNI IPAM 插件:負(fù)責(zé)在創(chuàng)建或刪除 Pod 時(shí)為其分配和釋放 IP 地址。根據(jù)插件的不同吁峻,這可能包括為每個(gè)節(jié)點(diǎn)分配一個(gè)或多個(gè) IP 地址 (CIDR) 范圍滑负,或從底層公共云網(wǎng)絡(luò)獲取 IP 地址以分配給 pod。

云提供商集成

Kubernetes 云提供商集成是特定于云的控制器用含,可以配置底層云網(wǎng)絡(luò)以幫助提供 Kubernetes 網(wǎng)絡(luò)矮慕。根據(jù)云提供商的不同,這可能包括自動(dòng)將路由編程到底層云網(wǎng)絡(luò)中啄骇,以便它本機(jī)知道如何路由 pod 流量痴鳄。

Kubenet

Kubenet 是一個(gè)非常基礎(chǔ)的網(wǎng)絡(luò)插件肠缔,內(nèi)置在 Kubernetes 中夏跷。它不實(shí)現(xiàn)跨節(jié)點(diǎn)網(wǎng)絡(luò)或網(wǎng)絡(luò)策略哼转。它通常與云提供商集成一起使用明未,該集成在云提供商網(wǎng)絡(luò)中設(shè)置路由以在節(jié)點(diǎn)之間或在單節(jié)點(diǎn)環(huán)境中進(jìn)行通信槽华。Kubenet 與 Calico 不兼容。

覆蓋網(wǎng)絡(luò)(Overlay)

覆蓋網(wǎng)絡(luò)是在另一個(gè)網(wǎng)絡(luò)之上的網(wǎng)絡(luò)層趟妥。在 Kubernetes 的上下文中猫态,覆蓋網(wǎng)絡(luò)可用于處理底層網(wǎng)絡(luò)之上節(jié)點(diǎn)之間的 pod 到 pod 流量,該網(wǎng)絡(luò)不知道 pod IP 地址或哪些 pod 在哪些節(jié)點(diǎn)上運(yùn)行披摄。覆蓋網(wǎng)絡(luò)通過(guò)將底層網(wǎng)絡(luò)不知道如何處理的網(wǎng)絡(luò)數(shù)據(jù)包(例如使用 pod IP 地址)封裝在底層網(wǎng)絡(luò)知道如何處理的外部數(shù)據(jù)包(例如節(jié)點(diǎn) IP 地址)中來(lái)工作亲雪。用于封裝的兩種常見網(wǎng)絡(luò)協(xié)議是 VXLAN 和 IP-in-IP。

使用覆蓋網(wǎng)絡(luò)的主要優(yōu)點(diǎn)是它減少了對(duì)底層網(wǎng)絡(luò)的依賴疚膊。例如义辕,您可以在幾乎任何底層網(wǎng)絡(luò)之上運(yùn)行 VXLAN 覆蓋,而無(wú)需與底層網(wǎng)絡(luò)集成或?qū)Φ讓泳W(wǎng)絡(luò)進(jìn)行任何更改寓盗。

使用覆蓋網(wǎng)絡(luò)的主要缺點(diǎn)是:

  • 輕微的性能影響灌砖。封裝數(shù)據(jù)包的過(guò)程占用少量 CPU,數(shù)據(jù)包中用于編碼封裝(VXLAN 或 IP-in-IP 標(biāo)頭)所需的額外字節(jié)減少了可以發(fā)送的內(nèi)部數(shù)據(jù)包的最大大小傀蚌,進(jìn)而可以意味著需要為相同數(shù)量的總數(shù)據(jù)發(fā)送更多數(shù)據(jù)包基显。

  • pod IP 地址不可在集群外路由。更多關(guān)于這下面善炫!

跨子網(wǎng)覆蓋(Cross-subnet overlays)

除了標(biāo)準(zhǔn)的 VXLAN 或 IP-in-IP 覆蓋外撩幽,Calico 還支持 VXLAN 和 IP-in-IP 的“跨子網(wǎng)”模式。在這種模式下箩艺,在每個(gè)子網(wǎng)中窜醉,底層網(wǎng)絡(luò)充當(dāng) L2 網(wǎng)絡(luò)。在單個(gè)子網(wǎng)內(nèi)發(fā)送的數(shù)據(jù)包不會(huì)被封裝艺谆,因此您可以獲得非覆蓋網(wǎng)絡(luò)的性能酱虎。跨子網(wǎng)發(fā)送的數(shù)據(jù)包被封裝擂涛,就像普通的覆蓋網(wǎng)絡(luò)一樣读串,減少了對(duì)底層網(wǎng)絡(luò)的依賴(無(wú)需與底層網(wǎng)絡(luò)集成或?qū)Φ讓泳W(wǎng)絡(luò)進(jìn)行任何更改)。

就像標(biāo)準(zhǔn)覆蓋網(wǎng)絡(luò)一樣撒妈,底層網(wǎng)絡(luò)不知道 pod IP 地址恢暖,并且 pod IP 地址不能在集群外路由。

集群外的 Pod IP 可路由性

不同 Kubernetes 網(wǎng)絡(luò)實(shí)現(xiàn)的一個(gè)重要區(qū)別特征是 pod IP 地址是否可通過(guò)更廣泛的網(wǎng)絡(luò)在集群外部路由狰右。

不可路由

如果 pod IP 地址在集群外部不可路由杰捂,那么當(dāng) pod 嘗試建立到集群外部 IP 地址的網(wǎng)絡(luò)連接時(shí),Kubernetes 使用一種稱為 SNAT(源網(wǎng)絡(luò)地址轉(zhuǎn)換)的技術(shù)來(lái)更改源 IP從 pod 的 IP 地址到托管 pod 的節(jié)點(diǎn)的 IP 地址棋蚌。連接上的任何返回?cái)?shù)據(jù)包都會(huì)自動(dòng)映射回 pod IP 地址嫁佳。因此 pod 不知道 SNAT 正在發(fā)生挨队,連接的目的地將節(jié)點(diǎn)視為連接的源,而底層更廣泛的網(wǎng)絡(luò)永遠(yuǎn)不會(huì)看到 pod IP 地址蒿往。

對(duì)于相反方向的連接盛垦,集群外部的東西需要連接到一個(gè) pod,這只能通過(guò) Kubernetes 服務(wù)或 Kubernetes 入口來(lái)完成瓤漏。集群外部的任何東西都不能直接連接到 Pod IP 地址腾夯,因?yàn)楦鼜V泛的網(wǎng)絡(luò)不知道如何將數(shù)據(jù)包路由到 Pod IP 地址。

可路由

如果 pod IP 地址可在集群外部路由蔬充,則 pod 可以在沒有 SNAT 的情況下連接到外部世界蝶俱,而外部世界可以直接連接到 pod,而無(wú)需通過(guò) Kubernetes 服務(wù)或 Kubernetes 入口饥漫。

可在集群外路由的 Pod IP 地址的優(yōu)點(diǎn)是:

  • 為出站連接避免 SNAT 對(duì)于與現(xiàn)有更廣泛的安全要求集成可能是必不可少的榨呆。它還可以簡(jiǎn)化操作日志的調(diào)試和可理解性。

  • 如果您有專門的工作負(fù)載庸队,這意味著某些 pod 需要無(wú)需通過(guò) Kubernetes 服務(wù)或 Kubernetes 入口即可直接訪問积蜻,那么可路由的 pod IP 在操作上可能比使用主機(jī)聯(lián)網(wǎng) pod 的替代方案更簡(jiǎn)單。

可在集群外路由的 Pod IP 地址的主要缺點(diǎn)是 Pod IP 在更廣泛的網(wǎng)絡(luò)中必須是唯一的皿哨。例如浅侨,如果運(yùn)行多個(gè)集群,您將需要為每個(gè)集群中的 Pod 使用不同的 IP 地址范圍 (CIDR)证膨。當(dāng)大規(guī)模運(yùn)行時(shí)如输,或者如果企業(yè)對(duì) IP 地址空間有其他重要的現(xiàn)有需求,這反過(guò)來(lái)又會(huì)導(dǎo)致 IP 地址范圍耗盡的挑戰(zhàn)央勒。

什么決定了可路由性不见?

如果您為集群使用覆蓋網(wǎng)絡(luò),則 pod IP 通常無(wú)法在集群外部路由崔步。

如果您不使用覆蓋網(wǎng)絡(luò)稳吮,那么 pod IP 是否可在集群外部路由取決于正在使用的 CNI 插件、云提供商集成或(對(duì)于本地)BGP 與物理網(wǎng)絡(luò)對(duì)等的組合井濒。

BGP

BGP(邊界網(wǎng)關(guān)協(xié)議)是一種基于標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議灶似,用于在網(wǎng)絡(luò)中共享路由。它是互聯(lián)網(wǎng)的基本組成部分之一瑞你,具有出色的擴(kuò)展特性酪惭。

Calico 內(nèi)置了對(duì) BGP 的支持。在本地部署中者甲,這允許 Calico 與物理網(wǎng)絡(luò)(通常與架頂式路由器)對(duì)等以交換路由春感,從而形成一個(gè)非覆蓋網(wǎng)絡(luò),其中 pod IP 地址可在更廣泛的網(wǎng)絡(luò)中路由,就像附加的任何其他工作負(fù)載一樣到網(wǎng)絡(luò)鲫懒。

關(guān)于 Calico 網(wǎng)絡(luò)

Calico 靈活的網(wǎng)絡(luò)模塊化架構(gòu)包括以下內(nèi)容嫩实。

Calico CNI 網(wǎng)絡(luò)插件

Calico CNI 網(wǎng)絡(luò)插件使用一對(duì)虛擬以太網(wǎng)設(shè)備(veth pair)將 pod 連接到主機(jī)網(wǎng)絡(luò)命名空間的 L3 路由。這種 L3 架構(gòu)避免了許多其他 Kubernetes 網(wǎng)絡(luò)解決方案中的額外 L2 橋的不必要的復(fù)雜性和性能開銷窥岩。

Calico CNI IPAM 插件

Calico CNI IPAM 插件從一個(gè)或多個(gè)可配置的 IP 地址范圍內(nèi)為 Pod 分配 IP 地址甲献,并根據(jù)需要為每個(gè)節(jié)點(diǎn)動(dòng)態(tài)分配小塊 IP。結(jié)果是與許多其他 CNI IPAM 插件相比谦秧,IP 地址空間使用效率更高竟纳,包括用于許多網(wǎng)絡(luò)解決方案的主機(jī)本地 IPAM 插件撵溃。

覆蓋網(wǎng)絡(luò)模式(Overlay )

Calico 可以提供 VXLAN 或 IP-in-IP 覆蓋網(wǎng)絡(luò)疚鲤,包括僅跨子網(wǎng)(cross-subnet only)模式。

非覆蓋網(wǎng)絡(luò)模式(Non-overlay)

Calico 可以提供在任何底層 L2 網(wǎng)絡(luò)或 L3 網(wǎng)絡(luò)之上運(yùn)行的非覆蓋網(wǎng)絡(luò)缘挑,該網(wǎng)絡(luò)既可以是具有適當(dāng)云提供商集成的公共云網(wǎng)絡(luò)集歇,也可以是支持 BGP 的網(wǎng)絡(luò)(通常是具有標(biāo)準(zhǔn) Top-of 的本地網(wǎng)絡(luò)-機(jī)架路由器)。

網(wǎng)絡(luò)策略執(zhí)行

Calico 的網(wǎng)絡(luò)策略執(zhí)行引擎實(shí)現(xiàn)了 Kubernetes 網(wǎng)絡(luò)策略的全部功能语淘,以及 Calico 網(wǎng)絡(luò)策略的擴(kuò)展功能诲宇。這與 Calico 的內(nèi)置網(wǎng)絡(luò)模式或任何其他 Calico 兼容的網(wǎng)絡(luò)插件和云提供商集成結(jié)合使用。

網(wǎng)絡(luò)選項(xiàng)

本地(on-prem)

Calico on-prem 最常見的網(wǎng)絡(luò)設(shè)置是使用 BGP to peer 與物理網(wǎng)絡(luò)(通常是架頂路由器)的非覆蓋模式惶翻,以使 pod IP 可在集群外部路由姑蓝。(當(dāng)然,如果需要吕粗,您可以配置本地網(wǎng)絡(luò)的其余部分以限制集群外部 pod IP 路由的范圍纺荧。)此設(shè)置提供了豐富的高級(jí) Calico 功能,包括廣播 Kubernetes 服務(wù) IP 的能力(集群 IP 或外部 IP)颅筋,以及在 pod宙暇、命名空間或節(jié)點(diǎn)級(jí)別控制 IP 地址管理的能力,以支持與現(xiàn)有企業(yè)網(wǎng)絡(luò)和安全要求集成的廣泛可能性议泵。

image.png

如果無(wú)法將 BGP 配對(duì)連接到物理網(wǎng)絡(luò)占贫,如果集群位于單個(gè) L2 網(wǎng)絡(luò)中,您也可以運(yùn)行非覆蓋模式先口,Calico 只是在集群中的節(jié)點(diǎn)之間匹配 BGP型奥。盡管這不是嚴(yán)格意義上的覆蓋網(wǎng)絡(luò),但 Pod IP 不能在集群外路由碉京,因?yàn)楦鼜V泛的網(wǎng)絡(luò)沒有 Pod IP 的路由厢汹。


image.png

或者,您可以在 VXLAN 或 IP-in-IP 覆蓋模式下運(yùn)行 Calico收夸,并使用跨子網(wǎng)覆蓋模式來(lái)優(yōu)化每個(gè) L2 子網(wǎng)內(nèi)的性能坑匠。

推薦:


image.png

或者

image.png

名詞解釋

Calico 策略:

Kubernetes 網(wǎng)絡(luò)策略是由網(wǎng)絡(luò)插件實(shí)現(xiàn)的,而不是 Kubernetes 本身卧惜。簡(jiǎn)單地創(chuàng)建一個(gè)沒有網(wǎng)絡(luò)插件來(lái)實(shí)現(xiàn)的網(wǎng)絡(luò)策略資源厘灼,它將對(duì)網(wǎng)絡(luò)流量沒有影響夹纫。
Calico 插件實(shí)現(xiàn)了全套 Kubernetes 網(wǎng)絡(luò)策略功能。此外设凹,Calico 支持 Calico 網(wǎng)絡(luò)策略舰讹,提供超出 Kubernetes 網(wǎng)絡(luò)策略的附加特性和功能。Kubernetes 和 Calico 網(wǎng)絡(luò)策略無(wú)縫協(xié)作闪朱,因此您可以選擇適合自己的月匣,并根據(jù)需要進(jìn)行混合和匹配。

Calico IPAM:

Kubernetes 如何為 Pod 分配 IP 地址取決于所使用的 IPAM(IP 地址管理)插件奋姿。
Calico IPAM 插件根據(jù)需要?jiǎng)討B(tài)地將小塊 IP 地址分配給節(jié)點(diǎn)锄开,以有效地整體使用可用的 IP 地址空間。此外称诗,Calico IPAM 支持高級(jí)功能萍悴,例如多個(gè) IP 地址池,能夠指定命名空間或 pod 應(yīng)使用的特定 IP 地址范圍寓免,甚至是 pod 應(yīng)使用的特定 IP 地址癣诱。

Calico CNI:

Kubernetes 使用的 CNI(容器網(wǎng)絡(luò)接口)插件確定了 pod 如何連接到底層網(wǎng)絡(luò)的詳細(xì)信息。
Calico CNI 插件使用 L3 路由將 Pod 連接到主機(jī)網(wǎng)絡(luò)袜香,無(wú)需 L2 網(wǎng)橋撕予。這簡(jiǎn)單易懂,并且比其他常見的替代方案(如 kubenet 或 flannel)更有效蜈首。

無(wú)覆蓋:

在不使用覆蓋的情況下運(yùn)行可提供最高性能的網(wǎng)絡(luò)实抡。離開您的 pod 的數(shù)據(jù)包是通過(guò)網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)包。
為了完整性疾就,相比之下澜术,overlay 網(wǎng)絡(luò)中,不同節(jié)點(diǎn)上的 pod 之間的數(shù)據(jù)包使用 VXLAN 或 IPIP 等協(xié)議進(jìn)行封裝猬腰,將每個(gè)原始數(shù)據(jù)包包裝在使用節(jié)點(diǎn) IP 的外部數(shù)據(jù)包中鸟废,并隱藏內(nèi)部數(shù)據(jù)包的 pod IP . 這可以通過(guò) Linux 內(nèi)核非常有效地完成,但它仍然代表一個(gè)小的開銷姑荷,如果運(yùn)行特別網(wǎng)絡(luò)密集型工作負(fù)載盒延,您可能希望避免這種開銷。

VXLAN 跨子網(wǎng):

使用 Calico 的跨子網(wǎng) VXLAN 模式鼠冕,同一子網(wǎng)上的 pod 之間的流量不使用覆蓋添寺,而不同子網(wǎng)上的 pod 之間的流量將通過(guò) VXLAN 覆蓋。
同一子網(wǎng)內(nèi)節(jié)點(diǎn)上的 pod 之間的數(shù)據(jù)包在不使用覆蓋的情況下發(fā)送懈费,以提供最佳的網(wǎng)絡(luò)性能计露。
不同子網(wǎng)節(jié)點(diǎn)上的pod之間的數(shù)據(jù)包使用IPIP封裝,將每個(gè)原始數(shù)據(jù)包包裝在使用節(jié)點(diǎn)IP的外部數(shù)據(jù)包中,并隱藏內(nèi)部數(shù)據(jù)包的pod IP票罐。這可以通過(guò) Linux 內(nèi)核非常有效地完成叉趣,但與非覆蓋流量相比,它仍然代表很小的開銷该押。

IPIP 跨子網(wǎng):

使用 Calico 的跨子網(wǎng) IPIP 模式疗杉,同一子網(wǎng)上的 pod 之間的流量不使用覆蓋,而不同子網(wǎng)上的 pod 之間的流量將通過(guò) IPIP 覆蓋蚕礼。
同一子網(wǎng)內(nèi)節(jié)點(diǎn)上的 pod 之間的數(shù)據(jù)包在不使用覆蓋的情況下發(fā)送烟具,以提供最佳的網(wǎng)絡(luò)性能。
不同子網(wǎng)節(jié)點(diǎn)上的pod之間的數(shù)據(jù)包使用IPIP封裝奠蹬,將每個(gè)原始數(shù)據(jù)包包裝在使用節(jié)點(diǎn)IP的外部數(shù)據(jù)包中朝聋,并隱藏內(nèi)部數(shù)據(jù)包的pod IP。這可以通過(guò) Linux 內(nèi)核非常有效地完成罩润,但與非覆蓋流量相比玖翅,它仍然代表很小的開銷翼馆。

BGP 路由:

BGP(邊界網(wǎng)關(guān)協(xié)議)用于為節(jié)點(diǎn)之間的 pod 流量動(dòng)態(tài)編程路由割以。
BGP 是一種基于標(biāo)準(zhǔn)的路由協(xié)議,用于構(gòu)建互聯(lián)網(wǎng)应媚。它的可擴(kuò)展性非常好严沥,即使是最大的 Kubernetes 集群,與 BGP 可以處理的負(fù)載相比中姜,負(fù)載量也很小消玄。
Calico 可以在三種模式下運(yùn)行 BGP:

  • 全網(wǎng)狀- 每個(gè)節(jié)點(diǎn)在底層 L2 網(wǎng)絡(luò)之上或使用 IPIP 覆蓋之間相互通信 BGP,輕松擴(kuò)展到 100 個(gè)節(jié)點(diǎn)

  • 使用路由反射器- 每個(gè)節(jié)點(diǎn)與一個(gè)或多個(gè) BGP 路由反射器通信丢胚,在底層 L2 網(wǎng)絡(luò)之上或使用 IPIP 覆蓋擴(kuò)展超過(guò) 100 個(gè)節(jié)點(diǎn)

  • 與 TOR(架頂式)路由器對(duì)等- 在物理數(shù)據(jù)中心中翩瓜,每個(gè)節(jié)點(diǎn)與相應(yīng)機(jī)架頂部的路由器通信,擴(kuò)展到物理數(shù)據(jù)中心的限制携龟。

Calico 路由:

Calico 路由使用其數(shù)據(jù)存儲(chǔ)在節(jié)點(diǎn)之間為 Pod 流量分配和編程路由兔跌,而無(wú)需 BGP。Calico 路由支持單個(gè)子網(wǎng)內(nèi)的未封裝流量峡蟋,以及跨多個(gè)子網(wǎng)的集群的選擇性 VXLAN 封裝坟桅。

AWS

Azure

Google Cloud

IBM Cloud

適用于任何環(huán)境

上面的環(huán)境列表顯然并不詳盡。理解本指南中的概念和解釋有望幫助您找出適合您環(huán)境的方法蕊蝗。如果您仍然不確定仅乓,那么您可以通過(guò) Calico 用戶的 Slack 或 Discourse 論壇尋求建議。請(qǐng)記住蓬戚,如果您想開始使用夸楣,幾乎可以在任何環(huán)境中以 VXLAN 覆蓋模式運(yùn)行 Calico,而不必過(guò)于擔(dān)心不同的選項(xiàng)。


image.png

配置覆蓋網(wǎng)絡(luò)

配置 VXLAN 只封裝跨子網(wǎng)流量

VXLAN 封裝可以有選擇地執(zhí)行豫喧,并且僅用于跨子網(wǎng)邊界的流量洞慎。

要啟用此功能,請(qǐng)?jiān)O(shè)置vxlanModeCrossSubnet嘿棘。

apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
    name: ippool-vxlan-cross-subnet-1
spec:
    cidr: 192.168.0.0/16
    vxlanMode: CrossSubnetnat
    Outgoing: true

其中 projectcalico.org/v3 API 默認(rèn)沒有安裝劲腿,需要額外安裝:calicoctlcalico API server

官方推薦使用 API server

In newer releases, the Calico API server performs that defaulting and validation server-side, exposing the same API semantics without a dependency on calicoctl. For this reason, we recommend installing the Calico API server and using kubectl instead of calicoctl for most operations.

calicoctl is still required for the following subcommands:

而 calicoctl 的使用方法如下

calicoctl [options] <command> [<args>...]

    create    Create a resource by file, directory or stdin.
    replace   Replace a resource by file, directory or stdin.
    apply     Apply a resource by file, directory or stdin.  This creates a resource
              if it does not exist, and replaces a resource if it does exists.
    patch     Patch a pre-exisiting resource in place.
    delete    Delete a resource identified by file, directory, stdin or resource type and
              name.
    get       Get a resource identified by file, directory, stdin or resource type and
              name.
    label     Add or update labels of resources.
    convert   Convert config files between different API versions.
    ipam      IP address management.
    node      Calico node management.
    version   Display the version of calicoctl.

安裝 apiserver

下載手動(dòng)安裝配置文件

https://raw.githubusercontent.com/projectcalico/calico/v3.24.1/manifests/apiserver.yaml

查看鏡像

[root@master calico]# grep image: apiserver.3.24.1.yaml
        image: calico/apiserver:v3.24.1

下載鏡像,保存到文件

[root@master calico]# docker pull docker.io/calico/apiserver:v3.24.1
v3.24.1: Pulling from calico/apiserver
235165e9bd81: Pull complete
e03c2207dc99: Pull complete
be26762afb02: Pull complete
3b65142dbe00: Pull complete
2c6c17b64fb7: Pull complete
f9afbeb128d3: Pull complete
502ecf572a9d: Pull complete
a9a34b78b0da: Pull complete
efb9edc6f767: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:1eac67b67652da38060ed0f5ece2f4fabf2e911b2df7d2c84c278f96b5e4b324
Status: Downloaded newer image for calico/apiserver:v3.24.1
docker.io/calico/apiserver:v3.24.1
[root@master calico]# docker save -o apiserver.3.24.1.tar calico/apiserver:v3.24.1
[root@master calico]# ll
-rw------- 1 root root  82997760 Nov  4 12:09 apiserver.3.24.1.tar

安裝到k8s

kubectl create -f apiserver.3.24.1.yaml
# 生成私鑰和CA
openssl req -x509 -nodes -newkey rsa:4096 -keyout apiserver.key -out apiserver.crt -days 365 -subj "/" -addext "subjectAltName = DNS:calico-api.calico-apiserver.svc"
# 將私鑰和證書作為 k8s secret 提交給 Calico API Server 
kubectl create secret -n calico-apiserver generic calico-apiserver-certs --from-file=apiserver.key --from-file=apiserver.crt
# 用CA綁定配置主API server
kubectl patch apiservice v3.projectcalico.org -p \
    "{\"spec\": {\"caBundle\": \"$(kubectl get secret -n calico-apiserver calico-apiserver-certs -o go-template='{{ index .data "apiserver.crt" }}')\"}}"
# 查看 api server pod 是否準(zhǔn)備完畢鸟妙,并且處于可訪問狀態(tài)
kubectl api-resources | grep '\sprojectcalico.org'

對(duì)于 vxlan overlay焦人,Calico 不使用 BGP

BGP 比較友好的概念解釋 BGP漫談

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市重父,隨后出現(xiàn)的幾起案子花椭,更是在濱河造成了極大的恐慌,老刑警劉巖房午,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矿辽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡郭厌,警方通過(guò)查閱死者的電腦和手機(jī)袋倔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)折柠,“玉大人宾娜,你說(shuō)我怎么就攤上這事∩仁郏” “怎么了前塔?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)承冰。 經(jīng)常有香客問我华弓,道長(zhǎng),這世上最難降的妖魔是什么困乒? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任寂屏,我火速辦了婚禮,結(jié)果婚禮上顶燕,老公的妹妹穿的比我還像新娘凑保。我一直安慰自己,他們只是感情好涌攻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布欧引。 她就那樣靜靜地躺著,像睡著了一般恳谎。 火紅的嫁衣襯著肌膚如雪芝此。 梳的紋絲不亂的頭發(fā)上憋肖,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音婚苹,去河邊找鬼岸更。 笑死,一個(gè)胖子當(dāng)著我的面吹牛膊升,可吹牛的內(nèi)容都是我干的怎炊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼廓译,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼评肆!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起非区,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瓜挽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后征绸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體久橙,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年管怠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了淆衷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡排惨,死狀恐怖吭敢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情暮芭,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布欲低,位于F島的核電站辕宏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏砾莱。R本人自食惡果不足惜瑞筐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腊瑟。 院中可真熱鬧聚假,春花似錦、人聲如沸闰非。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)财松。三九已至瘪贱,卻和暖如春纱控,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背菜秦。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工甜害, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人球昨。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓尔店,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親主慰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子闹获,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容