中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

還不會(huì)用K8s集群控制器?那你會(huì)用冰箱嗎?(多圖詳解)-創(chuàng)新互聯(lián)

還不會(huì)用 K8s 集群控制器?那你會(huì)用冰箱嗎?(多圖詳解)作者 | 阿里云售后技術(shù)專家?聲東

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),格爾木企業(yè)網(wǎng)站建設(shè),格爾木品牌網(wǎng)站建設(shè),網(wǎng)站定制,格爾木網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,格爾木網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

導(dǎo)讀:當(dāng)我們嘗試去理解 K8s 集群工作原理的時(shí)候,控制器(Controller)肯定是一個(gè)難點(diǎn)。這是因?yàn)榭刂破饔泻芏?,具體實(shí)現(xiàn)大相徑庭;且控制器的實(shí)現(xiàn)用到了一些較為晦澀的機(jī)制,不易理解。但是,我們又不能繞過控制器,因?yàn)樗羌旱摹按竽X”。今天這篇文章,作者通過分析一個(gè)簡易冰箱的設(shè)計(jì)過程,來幫助讀者深入理解集群控制器的產(chǎn)生,功能以及實(shí)現(xiàn)方法。

K8s 集群核心組件大圖

下圖是 K8s 集群的核心組件,包括數(shù)據(jù)庫 etcd,調(diào)度器 Scheduler,集群入口 API Server,控制器 Controller,服務(wù)代理 kube-proxy 以及直接管理具體業(yè)務(wù)容器的 kubelet。

這些組件邏輯上可以被分為三個(gè)部分:

  • 核心組件 etc 數(shù)據(jù)庫;
  • 對(duì) etcd 進(jìn)行直接操作的入口組件 API Server;
  • 其他組件, 這里的“其他組件”之所以可以被劃分為一類,是因?yàn)樗鼈兌伎梢员豢醋鍪羌旱目刂破鳌?/li>

還不會(huì)用 K8s 集群控制器?那你會(huì)用冰箱嗎?(多圖詳解)

今天我們要講的就是集群控制器原理。

控制器原理

雖然控制器是 K8s 集群中比較復(fù)雜的組件,但控制器本身對(duì)我們來說并不陌生的。我們每天使用的洗衣機(jī)、冰箱、空調(diào)等,都是依靠控制器才能正常工作。在控制器原理這一節(jié),我們通過思考一個(gè)簡易冰箱的設(shè)計(jì)過程,來理解 K8s 集群控制器的原理。

簡易的冰箱

這個(gè)冰箱包括五個(gè)組件:箱體、制冷系統(tǒng)、照明系統(tǒng)、溫控器以及門。

冰箱只有兩個(gè)功能:

  • 當(dāng)有人打開冰箱門的時(shí)候,冰箱內(nèi)的燈會(huì)自動(dòng)開啟;
  • 當(dāng)有人按下溫控器的時(shí)候,制冷系統(tǒng)會(huì)根據(jù)溫度設(shè)置,調(diào)節(jié)冰箱內(nèi)溫度。

還不會(huì)用 K8s 集群控制器?那你會(huì)用冰箱嗎?(多圖詳解)

統(tǒng)一入口

對(duì)于上邊的冰箱,我們可以簡單抽象成兩個(gè)部分:統(tǒng)一的操作入口和冰箱的所有組件。

在這里,用戶只有通過入口,才能操作冰箱。這個(gè)入口提供給用戶兩個(gè)接口:開關(guān)門和調(diào)節(jié)溫控器。用戶執(zhí)行這兩個(gè)接口的時(shí)候,入口會(huì)分別調(diào)整冰箱門和溫控器的狀態(tài)。

還不會(huì)用 K8s 集群控制器?那你會(huì)用冰箱嗎?(多圖詳解)

但是這里有一個(gè)問題,就是用戶通過這兩個(gè)接口,既不能讓冰箱內(nèi)部的燈打開,也不能調(diào)節(jié)冰箱的溫度。

控制器

控制器就是為了解決上邊的問題產(chǎn)生的??刂破骶褪怯脩舻牟僮?,和冰箱各個(gè)組件的正確狀態(tài)之間的一座橋梁:

  • 當(dāng)用戶打開門的時(shí)候,控制器觀察到了門的變化,它替用戶打開冰箱內(nèi)的燈;
  • 當(dāng)用戶按下溫控器的時(shí)候,控制器觀察到了用戶設(shè)置的溫度,它替用戶管理制冷系統(tǒng),調(diào)節(jié)冰箱內(nèi)溫度。

還不會(huì)用 K8s 集群控制器?那你會(huì)用冰箱嗎?(多圖詳解)

控制器管理器

冰箱有照明系統(tǒng)和制冷系統(tǒng),顯然相比一個(gè)控制器管理著兩個(gè)組件,我們替每個(gè)組件分別實(shí)現(xiàn)一個(gè)控制器是更為合理的選擇。同時(shí)我們實(shí)現(xiàn)一個(gè)控制器管理器來統(tǒng)一維護(hù)所有這些控制器,來保證這些控制器在正常工作。

還不會(huì)用 K8s 集群控制器?那你會(huì)用冰箱嗎?(多圖詳解)

SharedInformer

上邊的控制器和控制器管理器,看起來已經(jīng)相當(dāng)不錯(cuò)了。但是當(dāng)冰箱功能增加,勢必有很多新的控制器加進(jìn)來。這些控制器都需要通過冰箱入口,時(shí)刻監(jiān)控自己關(guān)心的組件的狀態(tài)變化。比如照明系統(tǒng)控制器就需要時(shí)刻監(jiān)控冰箱門的狀態(tài)。當(dāng)大量控制器不斷的和入口通信的時(shí)候,就會(huì)增加入口的壓力。

這個(gè)時(shí)候,我們把監(jiān)控冰箱組件狀態(tài)變化這件事情,交給一個(gè)新的模塊 SharedInformer 來實(shí)現(xiàn)。

SharedInformer 作為控制器的代理,替控制器監(jiān)控冰箱組件的狀態(tài)變化,并根據(jù)控制器的喜好,把不同組件狀態(tài)的變化,通知給對(duì)應(yīng)的控制器。通過優(yōu)化,這樣的 SharedInformer 可以極大的緩解冰箱入口的壓力。

還不會(huì)用 K8s 集群控制器?那你會(huì)用冰箱嗎?(多圖詳解)

ListWatcher

SharedInformer 方便了控制器對(duì)冰箱組件的監(jiān)控,而這個(gè)機(jī)制最核心的功能,當(dāng)然是主動(dòng)獲取組件狀態(tài)和被動(dòng)接收組件狀態(tài)變化的通知。這兩個(gè)功能加起來,就是 ListWatcher。

還不會(huì)用 K8s 集群控制器?那你會(huì)用冰箱嗎?(多圖詳解)

假設(shè) SharedInformer 和冰箱入口通過 http 協(xié)議通信的話,那么 http 分塊編碼(chunked transfer encoding)就是實(shí)現(xiàn) ListWatcher 的一個(gè)好的選擇??刂破魍ㄟ^ ListWatcher 給冰箱入口發(fā)送一個(gè)查詢?nèi)缓蟮却?dāng)冰箱組件有變化的時(shí)候,入口通過分塊的 http 響應(yīng)通知控制器??刂破骺吹?chunked 響應(yīng),會(huì)認(rèn)為響應(yīng)數(shù)據(jù)還沒有發(fā)送完成,所以會(huì)持續(xù)等待。

還不會(huì)用 K8s 集群控制器?那你會(huì)用冰箱嗎?(多圖詳解)

舉例說明

以上我們從一個(gè)簡易冰箱的進(jìn)化過程中,了解了控制器產(chǎn)生的意義,扮演的角色,以及實(shí)現(xiàn)的方式?,F(xiàn)在我們回到K8s 集群。K8s 集群實(shí)現(xiàn)了大量的控制器,而且在可以預(yù)見的未來,新的功能的控制器會(huì)不斷出現(xiàn),而一些舊的控制器也會(huì)被逐漸淘汰。

目前來說,我們比較常用的控制器,如 Pod 控制器、Deployment 控制器、Service 控制器、Replicaset 控制器等。這些控制器一部分是由 kube controller manager 這個(gè)管理器實(shí)現(xiàn)和管理,而像 route 控制器和 service 控制器,則由 cloud controller manager 實(shí)現(xiàn)。

之所以會(huì)出現(xiàn) cloud controller manager,是因?yàn)樵诓煌脑骗h(huán)境中,一部分控制器的實(shí)現(xiàn),會(huì)因?yàn)樵茝S商、云環(huán)境的不同,出現(xiàn)很大的差別。這類控制器被劃分出來,由云廠商各自基于 cloud controller manager 分別實(shí)現(xiàn)。

這里我們以阿里云 K8s 集群 cloud controller manager 實(shí)現(xiàn)的 route? 控制器和 service 控制器為例,簡單說明 K8s 控制器的工作原理。

服務(wù)控制器

首先,用戶請(qǐng)求 API Server 創(chuàng)建一個(gè) LoadBalancer 類型的服務(wù),API Server 收到請(qǐng)求并把這個(gè)服務(wù)的詳細(xì)信息寫入 etcd 數(shù)據(jù)庫。而這個(gè)變化,被服務(wù)控制器觀察到了。服務(wù)控制器理解 LoadBalancer 類型的服務(wù),除了包括存放在 etcd 內(nèi)部的服務(wù)記錄之外,還需要一個(gè) SLB 作為服務(wù)入口,以及若干 endpoints 作為服務(wù)后端。所以服務(wù)控制器分別請(qǐng)求 SLB 的云 openapi 和 API Server,來創(chuàng)建云上 SLB 資源,和集群內(nèi) endpoints 資源。

還不會(huì)用 K8s 集群控制器?那你會(huì)用冰箱嗎?(多圖詳解)

路由控制器

在集群網(wǎng)絡(luò)一章中,我們提到過,當(dāng)一個(gè)節(jié)點(diǎn)加入一個(gè) K8s 集群的時(shí)候,集群需要在 VPC 路由表里增加一條路由,來搭建這個(gè)新加入節(jié)點(diǎn)到 Pod 網(wǎng)絡(luò)的主干道。而這件事情,就是路由控制器來做的。路由控制器完成這件事情的流程,與上邊服務(wù)控制器的處理流程非常類似,這里不再贅述。

還不會(huì)用 K8s 集群控制器?那你會(huì)用冰箱嗎?(多圖詳解)

結(jié)束語

基本上來說,K8s 集群的控制器,其實(shí)扮演著集群大腦的角色。有了控制器,K8s 集群才有機(jī)會(huì)擺脫機(jī)械和被動(dòng),變成一個(gè)自動(dòng)、智能、有大用的系統(tǒng)。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁標(biāo)題:還不會(huì)用K8s集群控制器?那你會(huì)用冰箱嗎?(多圖詳解)-創(chuàng)新互聯(lián)
分享地址:http://m.rwnh.cn/article6/cegsig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈App設(shè)計(jì)、關(guān)鍵詞優(yōu)化虛擬主機(jī)、定制開發(fā)營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
白玉县| 济南市| 古浪县| 高阳县| 资讯| 鲁山县| 大庆市| 道孚县| 临泉县| 大埔县| 依兰县| 永顺县| 廊坊市| 任丘市| 武鸣县| 远安县| 清河县| 梁平县| 三亚市| 沙洋县| 阳高县| 阜新市| 廊坊市| 左云县| 察隅县| 沙雅县| 文水县| 洛宁县| 耒阳市| 庄河市| 巴楚县| 栾川县| 集贤县| 师宗县| 玉林市| 永胜县| 乐平市| 林口县| 涞源县| 桂林市| 元江|