日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)kubernetes教程:Kubernetes控制器

控制器

在機(jī)器人技術(shù)和自動(dòng)化領(lǐng)域,控制回路(Control Loop)是一個(gè)非終止回路,用于調(diào)節(jié)系統(tǒng)狀態(tài)。

創(chuàng)新互聯(lián)公司是一家專業(yè)提供樺甸企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為樺甸眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

這是一個(gè)控制環(huán)的例子:房間里的溫度自動(dòng)調(diào)節(jié)器。

當(dāng)你設(shè)置了溫度,告訴了溫度自動(dòng)調(diào)節(jié)器你的期望狀態(tài)(Desired State)。 房間的實(shí)際溫度是當(dāng)前狀態(tài)(Current State)。 通過對設(shè)備的開關(guān)控制,溫度自動(dòng)調(diào)節(jié)器讓其當(dāng)前狀態(tài)接近期望狀態(tài)。

在 Kubernetes 中,控制器通過監(jiān)控集群 的公共狀態(tài),并致力于將當(dāng)前狀態(tài)轉(zhuǎn)變?yōu)槠谕臓顟B(tài)。

控制器模式

一個(gè)控制器至少追蹤一種類型的 Kubernetes 資源。這些 對象 有一個(gè)代表期望狀態(tài)的 ?spec ?字段。 該資源的控制器負(fù)責(zé)確保其當(dāng)前狀態(tài)接近期望狀態(tài)。

控制器可能會(huì)自行執(zhí)行操作;在 Kubernetes 中更常見的是一個(gè)控制器會(huì)發(fā)送信息給 API 服務(wù)器,這會(huì)有副作用。 具體可參看后文的例子。

通過 API 服務(wù)器來控制

Job 控制器是一個(gè) Kubernetes 內(nèi)置控制器的例子。 內(nèi)置控制器通過和集群 API 服務(wù)器交互來管理狀態(tài)。

Job 是一種 Kubernetes 資源,它運(yùn)行一個(gè)或者多個(gè) Pod, 來執(zhí)行一個(gè)任務(wù)然后停止。 (一旦被調(diào)度了,對 kubelet 來說 Pod 對象就會(huì)變成了期望狀態(tài)的一部分)。

在集群中,當(dāng) Job 控制器拿到新任務(wù)時(shí),它會(huì)保證一組 Node 節(jié)點(diǎn)上的 ?kubelet ?可以運(yùn)行正確數(shù)量的 Pod 來完成工作。 Job 控制器不會(huì)自己運(yùn)行任何的 Pod 或者容器。Job 控制器是通知 API 服務(wù)器來創(chuàng)建或者移除 Pod。 控制面中的其它組件 根據(jù)新的消息作出反應(yīng)(調(diào)度并運(yùn)行新 Pod)并且最終完成工作。

創(chuàng)建新 Job 后,所期望的狀態(tài)就是完成這個(gè) Job。Job 控制器會(huì)讓 Job 的當(dāng)前狀態(tài)不斷接近期望狀態(tài):創(chuàng)建為 Job 要完成工作所需要的 Pod,使 Job 的狀態(tài)接近完成。

控制器也會(huì)更新配置對象。例如:一旦 Job 的工作完成了,Job 控制器會(huì)更新 Job 對象的狀態(tài)為 ?Finished?。

(這有點(diǎn)像溫度自動(dòng)調(diào)節(jié)器關(guān)閉了一個(gè)燈,以此來告訴你房間的溫度現(xiàn)在到你設(shè)定的值了)。

直接控制

相比 Job 控制器,有些控制器需要對集群外的一些東西進(jìn)行修改。

例如,如果你使用一個(gè)控制回路來保證集群中有足夠的 節(jié)點(diǎn),那么控制器就需要當(dāng)前集群外的 一些服務(wù)在需要時(shí)創(chuàng)建新節(jié)點(diǎn)。

和外部狀態(tài)交互的控制器從 API 服務(wù)器獲取到它想要的狀態(tài),然后直接和外部系統(tǒng)進(jìn)行通信 并使當(dāng)前狀態(tài)更接近期望狀態(tài)。

(實(shí)際上有一個(gè)控制器 可以水平地?cái)U(kuò)展集群中的節(jié)點(diǎn)。)

這里,很重要的一點(diǎn)是,控制器做出了一些變更以使得事物更接近你的期望狀態(tài), 之后將當(dāng)前狀態(tài)報(bào)告給集群的 API 服務(wù)器。 其他控制回路可以觀測到所匯報(bào)的數(shù)據(jù)的這種變化并采取其各自的行動(dòng)。

在溫度計(jì)的例子中,如果房間很冷,那么某個(gè)控制器可能還會(huì)啟動(dòng)一個(gè)防凍加熱器。 就 Kubernetes 集群而言,控制面間接地與 IP 地址管理工具、存儲(chǔ)服務(wù)、云驅(qū)動(dòng) APIs 以及其他服務(wù)協(xié)作,通過擴(kuò)展 Kubernetes 來實(shí)現(xiàn)這點(diǎn)。

期望狀態(tài)與當(dāng)前狀態(tài)

Kubernetes 采用了系統(tǒng)的云原生視圖,并且可以處理持續(xù)的變化。

在任務(wù)執(zhí)行時(shí),集群隨時(shí)都可能被修改,并且控制回路會(huì)自動(dòng)修復(fù)故障。 這意味著很可能集群永遠(yuǎn)不會(huì)達(dá)到穩(wěn)定狀態(tài)。

只要集群中的控制器在運(yùn)行并且進(jìn)行有效的修改,整體狀態(tài)的穩(wěn)定與否是無關(guān)緊要的。

設(shè)計(jì) 

作為設(shè)計(jì)原則之一,Kubernetes 使用了很多控制器,每個(gè)控制器管理集群狀態(tài)的一個(gè)特定方面。 最常見的一個(gè)特定的控制器使用一種類型的資源作為它的期望狀態(tài), 控制器管理控制另外一種類型的資源向它的期望狀態(tài)演化。

使用簡單的控制器而不是一組相互連接的單體控制回路是很有用的。 控制器會(huì)失敗,所以 Kubernetes 的設(shè)計(jì)正是考慮到了這一點(diǎn)。

可以有多個(gè)控制器來創(chuàng)建或者更新相同類型的對象。 在后臺(tái),Kubernetes 控制器確保它們只關(guān)心與其控制資源相關(guān)聯(lián)的資源。

例如,你可以創(chuàng)建 Deployment 和 Job;它們都可以創(chuàng)建 Pod。 Job 控制器不會(huì)刪除 Deployment 所創(chuàng)建的 Pod,因?yàn)橛行畔?nbsp;(標(biāo)簽)讓控制器可以區(qū)分這些 Pod。

運(yùn)行控制器的方式

Kubernetes 內(nèi)置一組控制器,運(yùn)行在 kube-controller-manager 內(nèi)。 這些內(nèi)置的控制器提供了重要的核心功能。

Deployment 控制器和 Job 控制器是 Kubernetes 內(nèi)置控制器的典型例子。 Kubernetes 允許你運(yùn)行一個(gè)穩(wěn)定的控制平面,這樣即使某些內(nèi)置控制器失敗了, 控制平面的其他部分會(huì)接替它們的工作。

你會(huì)遇到某些控制器運(yùn)行在控制面之外,用以擴(kuò)展 Kubernetes。 或者,如果你愿意,你也可以自己編寫新控制器。 你可以以一組 Pod 來運(yùn)行你的控制器,或者運(yùn)行在 Kubernetes 之外。 最合適的方案取決于控制器所要執(zhí)行的功能是什么。


文章標(biāo)題:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes控制器
標(biāo)題來源:http://m.5511xx.com/article/cdjcehe.html