0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

GlobalRouter模式架構(gòu)和VPC-CNI 模式架構(gòu)對(duì)比

454398 ? 來(lái)源:it610 ? 作者:騰訊云原生 ? 2020-09-23 11:24 ? 次閱讀

Kubernetes 版本迭代比較快,新版本通常包含許多 bug 修復(fù)和新功能,舊版本逐漸淘汰,建議創(chuàng)建集群時(shí)選擇當(dāng)前 TKE 支持的最新版本,后續(xù)出新版本后也是可以支持 Master 和節(jié)點(diǎn)的版本升級(jí)的。

網(wǎng)絡(luò)模式: GlobalRouter vs VPC-CNI

GlobalRouter 模式架構(gòu):

GlobalRouter模式架構(gòu)和VPC-CNI 模式架構(gòu)對(duì)比

基于 CNI 和 網(wǎng)橋?qū)崿F(xiàn)的容器網(wǎng)絡(luò)能力,容器路由直接通過(guò) VPC 底層實(shí)現(xiàn);

容器與節(jié)點(diǎn)在同一網(wǎng)絡(luò)平面,但網(wǎng)段不與 VPC 網(wǎng)段重疊,容器網(wǎng)段地址充裕。

VPC-CNI 模式架構(gòu):

基于 CNI 和 VPC 彈性網(wǎng)卡實(shí)現(xiàn)的容器網(wǎng)絡(luò)能力,容器路由通過(guò)彈性網(wǎng)卡,性能相比 Global Router 約提高 10%;

容器與節(jié)點(diǎn)在同一網(wǎng)絡(luò)平面,網(wǎng)段在 VPC 網(wǎng)段內(nèi);

支持 Pod 固定 IP。

網(wǎng)絡(luò)模式對(duì)比:

支持三種使用方式:

創(chuàng)建集群時(shí)指定 GlobalRouter 模式;

創(chuàng)建集群時(shí)指定 VPC-CNI 模式,后續(xù)所有 Pod 都必須使用 VPC-CNI 模式創(chuàng)建;

創(chuàng)建集群時(shí)指定 GlobalRouter 模式,在需要使用 VPC-CNI 模式時(shí)為集群?jiǎn)⒂?VPC-CNI 的支持,即兩種模式混用。

選型建議:

絕大多數(shù)情況下應(yīng)該選擇 GlobalRouter,容器網(wǎng)段地址充裕,擴(kuò)展性強(qiáng),能適應(yīng)規(guī)模較大的業(yè)務(wù);

如果后期部分業(yè)務(wù)需要用到 VPC-CNI 模式,可以在 GlobalRouter 集群再開(kāi)啟 VPC-CNI 支持,也就是 GlobalRouter 與 VPC-CNI 混用,僅對(duì)部分業(yè)務(wù)使用 VPC-CNI 模式;

如果完全了解并接受 VPC-CNI 的各種限制,并且需要集群內(nèi)所有 Pod 都用 VPC-CNI 模式,可以創(chuàng)建集群時(shí)選擇 VPC-CNI 網(wǎng)絡(luò)插件。

參考官方文檔 《如何選擇容器服務(wù)網(wǎng)絡(luò)模式》: https://cloud.tencent.com/document/product/457/41636

運(yùn)行時(shí): Docker vs Containerd

Docker 作為運(yùn)行時(shí)的架構(gòu):

kubelet 內(nèi)置的 dockershim 模塊幫傲嬌的 docker 適配了 CRI 接口,然后 kubelet 自己調(diào)自己的 dockershim (通過(guò) socket 文件),然后 dockershim 再調(diào) dockerd 接口 (Docker HTTP API),接著 dockerd 還要再調(diào) docker-containerd (gRPC) 來(lái)實(shí)現(xiàn)容器的創(chuàng)建與銷毀等。

為什么調(diào)用鏈這么長(zhǎng)?Kubernetes 一開(kāi)始支持的就只是 Docker,后來(lái)引入了 CRI,將運(yùn)行時(shí)抽象以支持多種運(yùn)行時(shí),而 Docker 跟 Kubernetes 在一些方面有一定的競(jìng)爭(zhēng),不甘做小弟,也就沒(méi)在 dockerd 層面實(shí)現(xiàn) CRI 接口,所以 kubelet 為了讓 dockerd 支持 CRI,就自己為 dockerd 實(shí)現(xiàn)了 CRI。docker 本身內(nèi)部組件也模塊化了,再加上一層 CRI 適配,調(diào)用鏈肯定就長(zhǎng)了。

Containerd 作為運(yùn)行時(shí)的架構(gòu):

containerd 1.1 之后,支持 CRI Plugin,即 containerd 自身這里就可以適配 CRI 接口。

相比 Docker 方案,調(diào)用鏈少了 dockershim 和 dockerd。

運(yùn)行時(shí)對(duì)比:

containerd 方案由于繞過(guò)了 dockerd,調(diào)用鏈更短,組件更少,占用節(jié)點(diǎn)資源更少,繞過(guò)了 dockerd 本身的一些 bug,但 containerd 自身也還存在一些 bug (已修復(fù)一些,灰度中)。

docker 方案歷史比較悠久,相對(duì)更成熟,支持 docker api,功能豐富,符合大多數(shù)人的使用習(xí)慣。

選型建議:

Docker 方案 相比 containerd 更成熟,如果對(duì)穩(wěn)定性要求很高,建議 docker 方案;

以下場(chǎng)景只能使用 docker:

Docker in docker (通常在 CI 場(chǎng)景)

節(jié)點(diǎn)上使用 docker 命令

調(diào)用 docker API

沒(méi)有以上場(chǎng)景建議使用 containerd。

參考官方文檔 《如何選擇 Containerd 和Docker》:https://cloud.tencent.com/document/product/457/35747

Service 轉(zhuǎn)發(fā)模式: iptables vs ipvs

先看看 Service 的轉(zhuǎn)發(fā)原理:

節(jié)點(diǎn)上的 kube-proxy 組件 watch apiserver,獲取 Service 與 Endpoint,根據(jù)轉(zhuǎn)發(fā)模式將其轉(zhuǎn)化成 iptables 或 ipvs 規(guī)則并寫到節(jié)點(diǎn)上;

集群內(nèi)的 client 去訪問(wèn) Service (Cluster IP),會(huì)被 iptable/ipvs 規(guī)則負(fù)載均衡到 Service 對(duì)應(yīng)的后端 pod。

轉(zhuǎn)發(fā)模式對(duì)比:

ipvs 模式性能更高,但也存在一些已知未解決的 bug;

iptables 模式更成熟穩(wěn)定。

選型建議:

對(duì)穩(wěn)定性要求極高且 service 數(shù)量小于 2000,選 iptables;

其余場(chǎng)景首選 ipvs。

集群類型: 托管集群 vs 獨(dú)立集群

托管集群:

Master 組件用戶不可見(jiàn),由騰訊云托管

很多新功能也是會(huì)率先支持托管的集群

Master 的計(jì)算資源會(huì)根據(jù)集群規(guī)模自動(dòng)擴(kuò)容

用戶不需要為 Master 付費(fèi)

獨(dú)立集群:

Master 組件用戶可以完全掌控

用戶需要為 Master 付費(fèi)購(gòu)買機(jī)器

選型建議:

一般推薦托管集群

如果希望能能夠?qū)?Master 完全掌控,可以使用獨(dú)立集群 (比如對(duì) Master 進(jìn)行個(gè)性化定制實(shí)現(xiàn)高級(jí)功能)

節(jié)點(diǎn)操作系統(tǒng)

TKE 主要支持 Ubuntu 和 CentOS 兩類發(fā)行版,帶 “TKE-Optimized” 后綴用的是 TKE 定制優(yōu)化版的內(nèi)核,其它的是 linux 社區(qū)官方開(kāi)源內(nèi)核:

TKE-Optimized 的優(yōu)勢(shì):

基于內(nèi)核社區(qū)長(zhǎng)期支持的 4.14.105 版本定制

針對(duì)容器和云場(chǎng)景進(jìn)行優(yōu)化

計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)子系統(tǒng)均經(jīng)過(guò)性能優(yōu)化

對(duì)內(nèi)核缺陷修復(fù)支持較好

完全開(kāi)源:https://github.com/Tencent/TencentOS-kernel

選型建議:

推薦 “TKE-Optimized”,穩(wěn)定性和技術(shù)支持都比較好

如果需要更高版本內(nèi)核,選非 “TKE-Optimized”版本的操作系統(tǒng)

節(jié)點(diǎn)池

此特性當(dāng)前正在灰度中,可申請(qǐng)開(kāi)白名單使用。主要可用于批量管理節(jié)點(diǎn):

節(jié)點(diǎn) Label 與 Taint

節(jié)點(diǎn)組件啟動(dòng)參數(shù)

節(jié)點(diǎn)自定義啟動(dòng)腳本

操作系統(tǒng)與運(yùn)行時(shí) (暫未支持)

產(chǎn)品文檔:https://cloud.tencent.com/document/product/457/43719

適用場(chǎng)景:

異構(gòu)節(jié)點(diǎn)分組管理,減少管理成本

讓集群更好支持復(fù)雜的調(diào)度規(guī)則 (Label, Taint)

頻繁擴(kuò)縮容節(jié)點(diǎn),減少操作成本

節(jié)點(diǎn)日常維護(hù)(版本升級(jí))

用法舉例:

部分IO密集型業(yè)務(wù)需要高IO機(jī)型,為其創(chuàng)建一個(gè)節(jié)點(diǎn)池,配置機(jī)型并統(tǒng)一設(shè)置節(jié)點(diǎn) Label 與 Taint,然后將 IO 密集型業(yè)務(wù)配置親和性,選中 Label,使其調(diào)度到高 IO 機(jī)型的節(jié)點(diǎn) (Taint 可以避免其它業(yè)務(wù) Pod 調(diào)度上來(lái))。

隨著時(shí)間的推移,業(yè)務(wù)量快速上升,該 IO 密集型業(yè)務(wù)也需要更多的計(jì)算資源,在業(yè)務(wù)高峰時(shí)段,HPA 功能自動(dòng)為該業(yè)務(wù)擴(kuò)容了 Pod,而節(jié)點(diǎn)計(jì)算資源不夠用,這時(shí)節(jié)點(diǎn)池的自動(dòng)伸縮功能自動(dòng)擴(kuò)容了節(jié)點(diǎn),扛住了流量高峰。

啟動(dòng)腳本

組件自定義參數(shù)

此特性當(dāng)前也正在灰度中,可申請(qǐng)開(kāi)白名單使用。

創(chuàng)建集群時(shí),可在集群信息界面“高級(jí)設(shè)置”中自定義 Master 組件部分啟動(dòng)參數(shù):

添加節(jié)點(diǎn)時(shí),可在云服務(wù)器配置界面的“高級(jí)設(shè)置”中自定義 kubelet 部分啟動(dòng)參數(shù):

節(jié)點(diǎn)啟動(dòng)配置

新建集群時(shí),可在云服務(wù)器配置界面的“節(jié)點(diǎn)啟動(dòng)配置”選項(xiàng)處添加節(jié)點(diǎn)啟動(dòng)腳本:

添加節(jié)點(diǎn)時(shí),可在云服務(wù)器配置界面的“高級(jí)設(shè)置”中通過(guò)自定義數(shù)據(jù)配置節(jié)點(diǎn)啟動(dòng)腳本 (可用于修改組件啟動(dòng)參數(shù)、內(nèi)核參數(shù)等):

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)網(wǎng)絡(luò)

    關(guān)注

    0

    文章

    13

    瀏覽量

    7321
  • vpc
    vpc
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    8482
  • kubernetes
    +關(guān)注

    關(guān)注

    0

    文章

    223

    瀏覽量

    8683
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    risc-v與esp32架構(gòu)對(duì)比分析

    RISC-V與ESP32在架構(gòu)上存在顯著的差異,這些差異主要體現(xiàn)在處理器類型、設(shè)計(jì)原則、功能特性以及應(yīng)用場(chǎng)景等方面。以下是對(duì)兩者架構(gòu)的詳細(xì)對(duì)比分析: 一、處理器類型與設(shè)計(jì)原則 RISC-V : 類型
    發(fā)表于 09-26 08:40

    常用的k8s容器網(wǎng)絡(luò)模式有哪些?

    常用的k8s容器網(wǎng)絡(luò)模式包括Bridge模式、Host模式、Overlay模式、Flannel模式CN
    的頭像 發(fā)表于 09-19 11:29 ?180次閱讀

    晶體管的開(kāi)關(guān)模式和放大模式的區(qū)別

    晶體管的開(kāi)關(guān)模式和放大模式是其在電子電路中兩種截然不同的工作模式,它們?cè)谠?、特點(diǎn)、應(yīng)用以及電路行為等方面都存在顯著的差異。以下是對(duì)這兩種模式的詳細(xì)
    的頭像 發(fā)表于 09-13 16:42 ?321次閱讀

    RISC--V架構(gòu)的目標(biāo)和特點(diǎn)

    RISC--V架構(gòu)的目標(biāo) RISC--V架構(gòu)的目標(biāo)如下 成為一種完全開(kāi)放的指令集,可以被任何學(xué)術(shù)機(jī)構(gòu)或商業(yè)組織所自由使用 成為一種真正適合硬件實(shí)現(xiàn)且穩(wěn)定的標(biāo)準(zhǔn)指令集 RISC--V架構(gòu)的特點(diǎn) 特 性
    發(fā)表于 08-23 00:42

    伺服電機(jī)位置模式和速度模式的區(qū)別

    伺服電機(jī)作為現(xiàn)代工業(yè)自動(dòng)化領(lǐng)域中的核心動(dòng)力裝置,其控制模式的選擇對(duì)于整個(gè)系統(tǒng)的性能有著至關(guān)重要的影響。在伺服電機(jī)的控制模式中,位置模式和速度模式是最為常見(jiàn)的兩種。本文將對(duì)這兩種
    的頭像 發(fā)表于 06-05 15:02 ?2843次閱讀

    RISC--V架構(gòu)的特點(diǎn)

    RISC--V架構(gòu)的特點(diǎn) RISC-V架構(gòu)RISC-V 架構(gòu)是基于 精簡(jiǎn)指令集計(jì)算(RISC)原理建立的開(kāi)放 指令集架構(gòu)(ISA),RISC-V是在指令集不斷發(fā)展和成熟的基礎(chǔ)上建立的全
    發(fā)表于 05-24 08:01

    多核架構(gòu)高性能電機(jī)控制芯片

    基于傳統(tǒng)單核架構(gòu)的電機(jī)控制芯片已無(wú)法應(yīng)對(duì)新出現(xiàn)的嚴(yán)峻挑戰(zhàn),多核架構(gòu)的控制芯片應(yīng)運(yùn)而生。雙核架構(gòu)芯片已在許多領(lǐng)域成功應(yīng)用,并顯示出其獨(dú)特的優(yōu)勢(shì),可以利用無(wú)傳感器技術(shù)實(shí)現(xiàn)高性能的電機(jī)控制模式
    的頭像 發(fā)表于 04-19 14:46 ?8169次閱讀
    多核<b class='flag-5'>架構(gòu)</b>高性能電機(jī)控制芯片

    超融合架構(gòu)解決方案

    的特點(diǎn)、與傳統(tǒng)架構(gòu)對(duì)比以及超融合架構(gòu)方案的價(jià)值。 一、超融合架構(gòu)是什么? 超融合架構(gòu)(Hyper-Converged Infrastruc
    的頭像 發(fā)表于 04-10 14:57 ?553次閱讀

    【RISC-V開(kāi)放架構(gòu)設(shè)計(jì)之道|閱讀體驗(yàn)】一本別出心裁的RISC-V架構(gòu)之書(第一章)

    的計(jì)算機(jī)體系架構(gòu)專 別出心裁地按照RISC-V模塊化的指令來(lái)組織內(nèi)容 對(duì)比x86、ARM 和MIPS 的設(shè)計(jì),通過(guò)對(duì)比分析,突顯RISC-V 的優(yōu)勢(shì) 可以作為從業(yè)者隨時(shí)翻閱的案頭參考書 開(kāi)頭的蒙娜麗莎像讓
    發(fā)表于 01-24 19:06

    什么是分布式架構(gòu)?

    分布式架構(gòu)是指將一個(gè)系統(tǒng)或應(yīng)用拆分成多個(gè)獨(dú)立的節(jié)點(diǎn),這些節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)連接進(jìn)行通信和協(xié)作,以實(shí)現(xiàn)共同完成任務(wù)的一種架構(gòu)模式。這種架構(gòu)模式旨在提高系統(tǒng)的可擴(kuò)展性、可靠性和性能表現(xiàn)。 一、分布式架構(gòu)
    的頭像 發(fā)表于 01-12 15:04 ?1127次閱讀
    什么是分布式<b class='flag-5'>架構(gòu)</b>?

    如何搭建微服務(wù)架構(gòu)的全局圖景

    如果一直保持共用數(shù)據(jù)庫(kù)的模式,則整個(gè)架構(gòu)會(huì)越來(lái)越僵化,失去了微服務(wù)架構(gòu)的意義。因此小明和小紅一鼓作氣,把數(shù)據(jù)庫(kù)也拆分了。所有持久化層相互隔離,由各個(gè)服務(wù)自己負(fù)責(zé)。另外,為了提高系統(tǒng)的實(shí)時(shí)性,加入了消息隊(duì)列機(jī)制。
    的頭像 發(fā)表于 12-27 15:16 ?456次閱讀
    如何搭建微服務(wù)<b class='flag-5'>架構(gòu)</b>的全局圖景

    weblogic正式服務(wù)屬于什么模式

    網(wǎng)絡(luò)進(jìn)行通信的架構(gòu)模式。它可以提高系統(tǒng)的可擴(kuò)展性、可靠性和處理能力,以滿足不同的業(yè)務(wù)需求。 WebLogic作為一個(gè)開(kāi)發(fā)和部署Java應(yīng)用程序的平臺(tái),提供了一套完整的工具和功能,使開(kāi)發(fā)人員能夠方便地開(kāi)發(fā)、部署和管理分布式應(yīng)用程序。以下將從WebLogic的特點(diǎn)、
    的頭像 發(fā)表于 12-05 15:01 ?444次閱讀

    Lambda數(shù)據(jù)架構(gòu)和Kappa數(shù)據(jù)架構(gòu)——構(gòu)建現(xiàn)代數(shù)據(jù)架構(gòu)

    如何更好地構(gòu)建我們的數(shù)據(jù)處理架構(gòu),如何對(duì)IT系統(tǒng)中的遺留問(wèn)題進(jìn)行現(xiàn)代化改造并將其轉(zhuǎn)變?yōu)楝F(xiàn)代數(shù)據(jù)架構(gòu)?該怎么為你的需求匹配最適合的架構(gòu)設(shè)計(jì)呢,本文將分析兩種最流行的基于速度的數(shù)據(jù)架構(gòu),為
    的頭像 發(fā)表于 11-26 08:04 ?640次閱讀
    Lambda數(shù)據(jù)<b class='flag-5'>架構(gòu)</b>和Kappa數(shù)據(jù)<b class='flag-5'>架構(gòu)</b>——構(gòu)建現(xiàn)代數(shù)據(jù)<b class='flag-5'>架構(gòu)</b>

    javaweb三層架構(gòu)和mvc架構(gòu)

    JavaWeb三層架構(gòu)和MVC架構(gòu)是當(dāng)前Web開(kāi)發(fā)領(lǐng)域中常用的兩種架構(gòu)模式。 一、JavaWeb三層架構(gòu) JavaWeb三層架構(gòu)是將一個(gè)We
    的頭像 發(fā)表于 11-22 16:41 ?1567次閱讀

    C/S架構(gòu)的優(yōu)點(diǎn)

    C/S架構(gòu) 一、C/S架構(gòu)及其背景 C/S架構(gòu)是一種比較早的軟件架構(gòu),主要應(yīng)用于局域網(wǎng)內(nèi)。在這之前經(jīng)歷了集中計(jì)算模式,隨著計(jì)算機(jī)網(wǎng)絡(luò)的進(jìn)步與
    的頭像 發(fā)表于 11-13 10:39 ?1697次閱讀
    C/S<b class='flag-5'>架構(gòu)</b>的優(yōu)點(diǎn)