溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Kubernetes 主要功能

發(fā)布時間:2020-02-26 05:09:55 來源:網(wǎng)絡(luò) 閱讀:797 作者:云上之巔lo 欄目:數(shù)據(jù)庫

Kubernetes 主要功能

1、數(shù)據(jù)卷

??Pod中容器之間共享數(shù)據(jù),可以使用數(shù)據(jù)卷。

2、應(yīng)用程序健康檢查

??容器內(nèi)服務(wù)可能進程堵塞無法處理請求,可以設(shè)置監(jiān)控檢查策略保證應(yīng)用健壯性。

3、復(fù)制應(yīng)用程序?qū)嵗?/h5>

??控制器維護著Pod副本數(shù)量,保證一個Pod或一組同類的Pod數(shù)量始終可用。

4、彈性伸縮

??根據(jù)設(shè)定的指標(biāo)(CPU利用率)自動縮放Pod副本數(shù)。

5、服務(wù)發(fā)現(xiàn)

??使用環(huán)境變量或DNS服務(wù)插件保證容器中程序發(fā)現(xiàn)Pod入口訪問地址。

6、負(fù)載均衡

??一組Pod副本分配一個私有的 ClusterIP 地址,負(fù)載均衡轉(zhuǎn)發(fā)請求到后端容器。在集群內(nèi)部其他Pod可通過這個ClusterIP訪問應(yīng)用。

7、滾動更新

??更新服務(wù)不中斷,一次更新一個Pod,而不是同時刪除整個服務(wù)。

8、服務(wù)編排

??通過文件描述部署服務(wù),使得應(yīng)用程序部署變得更高效。

9、資源監(jiān)控

??Node節(jié)點組件集成cAdvisor資源收集工具,可通過Heapster匯總整個集群節(jié)點資源數(shù)據(jù),然后存儲到InfluxDB時序數(shù)據(jù)庫,再由Grafana展示。

10、提供認(rèn)證和授權(quán)

??支持屬性訪問控制(ABAC)、角色訪問控制(RBAC)認(rèn)證授權(quán)策略。

二、Kubernetes 基本對象概念(資源對象)

1、基本對象:

1、Pod

??Pod是最小部署單元,一個Pod有一個或多個容器組成,Pod中容器共享存儲和網(wǎng)絡(luò),在同一臺Docker主機上運行。

2、Service

??Service 一個應(yīng)用服務(wù)抽象,定義了Pod邏輯集合和訪問這個Pod集合的策略。

??Service代理Pod集合對外表現(xiàn)是為一個訪問入口,分配一個集群IP地址,來自這個IP的請求將負(fù)載均衡轉(zhuǎn)發(fā)后端Pod中的容器。

??Service通過LableSelector選擇一組Pod提供服務(wù)。

? 一個 pod 打多個標(biāo)簽

? 一個標(biāo)簽可以打給多pod

3、Volume

??數(shù)據(jù)卷,共享Pod中容器使用的數(shù)據(jù)。

4、Namespace

??命名空間將對象邏輯上分配到不同Namespace,可以是不同的項目、用戶等區(qū)分管理,并設(shè)定控制策略,從而實現(xiàn)多租戶。

??命名空間也稱為虛擬集群。

5、Lable

??標(biāo)簽用于區(qū)分對象(比如 Pod、Service),鍵/值對存在;每個對象可以有多個標(biāo)簽,通過標(biāo)簽關(guān)聯(lián)對象。

2、Kubernetes 基于基本對象更高層次抽象

1、ReplicaSet

??下一代ReplicationController。確保任何給定時間指定的Pod副本數(shù)量,并提供聲明式更新等功能。

??RC與RS唯一區(qū)別就是lableselector支持不同,RS支持新的基于集合的標(biāo)簽,RC僅支持基于等式的標(biāo)簽。

2、Deployment

??Deployment是一個更高層次的API對象,它管理ReplicaSets和Pod,并提供聲明式更新等功能。

??官方建議使用Deployment管理ReplicaSets,而不是直接使用ReplicaSets,這就意味著可能永遠(yuǎn)不需要直接操作ReplicaSet對象。

3、StatefulSet

??StatefulSet適合持久性的應(yīng)用程序,有唯一的網(wǎng)絡(luò)標(biāo)識符(IP),持久存儲,有序的部署、擴展、刪除和滾動更新。

4、DaemonSet

??demonSet確保所有(或一些)節(jié)點運行同一個Pod。當(dāng)節(jié)點加入Kubernetes集群中,Pod會被調(diào)度到該節(jié)點上運行,當(dāng)節(jié)點從集群中移除時,DaemonSet的Pod會被刪除。刪除DaemonSet會清理它所有創(chuàng)建的Pod。

5、Job

??一次性任務(wù),運行完成后Pod銷毀,不再重新啟動新容器。還可以任務(wù)定時運行。

3、Kubernetes 資源對象的理解和定義

1、Pod

Kubernetes為每個Pod都分配了唯一的IP地址,稱之為Pod IP,一個Pod里的多個容器共享Pod IP地址。Kubernetes要求底層網(wǎng)絡(luò)支持集群內(nèi)任意兩個Pod之間的TCP/IP直接通信,這通常采用虛擬二層網(wǎng)絡(luò)技術(shù)來實現(xiàn),例如Flannel、Open vSwitch等。因此,在Kubernetes里,一個Pod里的容器與另外主機上的Pod容器能夠直接通信。
Pod有兩種類型:普通的Pod和靜態(tài)Pod(Static Pod),靜態(tài)Pod不存放在etcd存儲里,而是存放在某個具體的Node上的一個具體文件中,并且只在此Node上啟動運行。普通的Pod一旦被創(chuàng)建,就會被存儲到etcd中,隨后會被Kubernetes Master調(diào)度到某個具體的Node上并進行綁定(Binding),該Node上的kubelet進程會將其實例化成一組相關(guān)的Docker容器并啟動起來。當(dāng)Pod里的某個容器停止時,Kubernetes會自動檢測到這個問題并且重新啟動這個Pod(重啟Pod里的所有容器);如果Pod所在的Node宕機,則會將這個Node上的所有Pod重新調(diào)度到其他節(jié)點上運行。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI