日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

我第一次接觸容器編排調(diào)度工具是 Docker 自家的 Docker Swarm,主要解決當(dāng)時(shí)公司內(nèi)部業(yè)務(wù)項(xiàng)目部署繁瑣的問(wèn)題,我記得當(dāng)時(shí)項(xiàng)目實(shí)現(xiàn)容器化之后,花在項(xiàng)目部署運(yùn)維的時(shí)間大大減少了,當(dāng)時(shí)覺(jué)得這玩意還挺新鮮的,原來(lái)自動(dòng)化運(yùn)維可以這么玩。后面由于工作原因,很久沒(méi)碰過(guò)容器方面的知識(shí)了。最近在公司的數(shù)據(jù)同步項(xiàng)目中,需要使用到分布式調(diào)度數(shù)據(jù)同步執(zhí)行單元,目前使用的方案是將數(shù)據(jù)同步執(zhí)行單元打包成鏡像,使用 K8s 進(jìn)行調(diào)度,正好趁這個(gè)機(jī)會(huì)了解一下 K8s,下面我就用圖解的形式將我所理解的 K8s 分享給大家。

K8s 三大核心功能

K8s 是一個(gè)輕便的和可擴(kuò)展的開(kāi)源平臺(tái),用于管理容器化應(yīng)用和服務(wù)。通過(guò) K8s 能夠進(jìn)行應(yīng)用的自動(dòng)化部署和擴(kuò)縮容。

K8s 是比容器更上一層的架構(gòu),它可以支持多種容器技術(shù),比如我們熟悉的 Docker,K8s 定位是一個(gè)容器調(diào)度工具,它主要具備以下三大核心能力:

1、自動(dòng)調(diào)度

k8s 將用戶部署提交的容器放到 k8s 集群的任意一個(gè)節(jié)點(diǎn)中,k8s 可以根據(jù)容器所需要的資源大小,以及節(jié)點(diǎn)的負(fù)載情況來(lái)決定容器放在哪個(gè)節(jié)點(diǎn)上面。

圖解 K8s 核心概念和術(shù)語(yǔ)

 

2、自動(dòng)修復(fù)

當(dāng) k8s 的健康檢查機(jī)制發(fā)現(xiàn)某個(gè)節(jié)點(diǎn)出現(xiàn)問(wèn)題,它會(huì)自動(dòng)將該節(jié)點(diǎn)上的資源轉(zhuǎn)移到其它節(jié)點(diǎn)上面完成自動(dòng)恢復(fù)。

圖解 K8s 核心概念和術(shù)語(yǔ)

 

3、橫向自動(dòng)擴(kuò)縮容

在 k8s 1.1+ 版本中,有一個(gè)功能叫 “ Horizontal Pod Autoscaler”,簡(jiǎn)稱 “HPA”,意思是 Pod自動(dòng)擴(kuò)容,它可以預(yù)先定義 Pod 的負(fù)載指標(biāo),當(dāng)達(dá)到預(yù)期設(shè)定的負(fù)載指標(biāo)后,就會(huì)根據(jù)指標(biāo)自動(dòng)觸發(fā)自動(dòng)動(dòng)態(tài)擴(kuò)容/縮容行為。

1)橫向自動(dòng)擴(kuò)容

圖解 K8s 核心概念和術(shù)語(yǔ)

 

2)橫向自動(dòng)縮容

圖解 K8s 核心概念和術(shù)語(yǔ)

 

節(jié)點(diǎn)

從上面的圖可以看出來(lái),k8s 集群的節(jié)點(diǎn)有兩個(gè)角色,分別為 Master 節(jié)點(diǎn)和 Node 節(jié)點(diǎn),整個(gè) K8s 集群Master 和 Node 節(jié)點(diǎn)關(guān)系如下圖所示:

圖解 K8s 核心概念和術(shù)語(yǔ)

 

1、Master 節(jié)點(diǎn)

Master 節(jié)點(diǎn)也稱為控制節(jié)點(diǎn),每個(gè) k8s 集群都有一個(gè) Master 節(jié)點(diǎn)負(fù)責(zé)整個(gè)集群的管理控制,我們上面介紹的 k8s 三大能力都是經(jīng)過(guò) Master 節(jié)點(diǎn)發(fā)起的,Master 節(jié)點(diǎn)包含了以下幾個(gè)組件:

圖解 K8s 核心概念和術(shù)語(yǔ)

 

  • API Server:提供了 HTTP Rest 接口的服務(wù)進(jìn)程,所有資源對(duì)象的增、刪、改、查等操作的唯一入口;
  • Controller Manager:k8s 集群所有資源對(duì)象的自動(dòng)化控制中心;
  • Scheduler:k8s 集群所有資源對(duì)象自動(dòng)化調(diào)度控制中心;
  • ETCD:k8s 集群注冊(cè)服務(wù)發(fā)現(xiàn)中心,可以保存 k8s 集群中所有資源對(duì)象的數(shù)據(jù)。

2、Node

Node 節(jié)點(diǎn)的作用是承接 Master 分配的工作負(fù)載,它主要有以下幾個(gè)關(guān)鍵組件:

圖解 K8s 核心概念和術(shù)語(yǔ)

 

  • kubelet:負(fù)責(zé) Pod 對(duì)應(yīng)容器的創(chuàng)建、啟停等操作,與 Master 節(jié)點(diǎn)緊密協(xié)作;
  • kube-porxy:實(shí)現(xiàn) k8s 集群通信與負(fù)載均衡的組件。

從圖上可看出,在 Node 節(jié)點(diǎn)上面,還需要一個(gè)容器運(yùn)行環(huán)境,如果使用 Docker 技術(shù)棧,則還需要在 Node 節(jié)點(diǎn)上面安裝 Docker Engine,專門負(fù)責(zé)該節(jié)點(diǎn)容器管理工作。

Pod

Pod 是 k8s 最重要而且是最基本的一個(gè)資源對(duì)象,它的結(jié)構(gòu)如下:

圖解 K8s 核心概念和術(shù)語(yǔ)

 

從以上 Pod 的結(jié)構(gòu)圖可以看出,它其實(shí)是容器的一個(gè)上層包裝結(jié)構(gòu),這也就是為什么 K8s 可以支持多種容器類型的原因,基于這方面,我理解 k8s 的定位就是一個(gè)編排與調(diào)度工具,而容器只是它調(diào)度的一個(gè)資源對(duì)象而已。

Pod 可包含多個(gè)容器在里面,每個(gè) Pod 至少會(huì)有一個(gè) Pause 容器,其它用戶定義的容器都共享該 Pause 容器,Pause 容器的主要作用是用于定義 Pod 的 ip 和 volume。

Pod 在 k8s 集群中的位置如下圖所示:

圖解 K8s 核心概念和術(shù)語(yǔ)

 

Label

Label 在 k8s 中是一個(gè)非常核心的概念,我們可以將 Label 指定到對(duì)應(yīng)的資源對(duì)象中,例如 Node、Pod、Replica Set、Service 等,一個(gè)資源可以綁定任意個(gè) Label,k8s 通過(guò) Label 可實(shí)現(xiàn)多維度的資源分組管理,后續(xù)可通過(guò) Label Selector 查詢和篩選擁有某些 Label 的資源對(duì)象,例如創(chuàng)建一個(gè) Pod,給定一個(gè) Label,workerid=123,后續(xù)可通過(guò) workerid=123 刪除擁有該標(biāo)簽的 Pod 資源。

圖解 K8s 核心概念和術(shù)語(yǔ)

 

Replica Set

Replica Set 目的是為了定義一個(gè)期望的場(chǎng)景,比如定義某種 Pod 的副本數(shù)量在任意時(shí)刻都處于 Peplica Set 期望的值,假設(shè) Replica Set 定義 Pod 的副本數(shù)目為:replicas=2,當(dāng)該 Replica Set 提交給 Master 后,Master 會(huì)定期巡檢該 Pod 在集群中的數(shù)目,如果發(fā)現(xiàn)該 Pod 掛掉了一個(gè),Master 就會(huì)嘗試依據(jù) Replica Set 設(shè)置的 Pod 模板創(chuàng)建 Pod,以維持 Pod 的數(shù)量與 Replica Set 預(yù)期的 Pod 數(shù)量相同。

通過(guò) Replica Set,k8s 集群實(shí)現(xiàn)了用戶應(yīng)用的高可用性,而且大大減少了運(yùn)維工作量。因此生產(chǎn)環(huán)境一般用 Deployment 或者 Replica Set 去控制 Pod 的生命周期和期望值,而不是直接單獨(dú)創(chuàng)建 Pod。

圖解 K8s 核心概念和術(shù)語(yǔ)

 

類似 Replica Set 的還有 Deployment,它的內(nèi)部實(shí)現(xiàn)也是通過(guò) Replica Set 實(shí)現(xiàn)的,可以說(shuō) Deployment 是 Replica Set 的升級(jí)版,它們之間的 yaml 配置文件格式大部分都相同。

Service

Service 是 k8s 能夠?qū)崿F(xiàn)微服務(wù)集群的一個(gè)非常重要的概念,顧名思義,k8s 的 Service 就是我們平時(shí)所提及的微服務(wù)架構(gòu)中的“微服務(wù)”,本文上面提及的 Pod、Replica Set 等都是為 Service 服務(wù)的資源, 如下圖表示 Service、Pod、Replica Set 的關(guān)系:

圖解 K8s 核心概念和術(shù)語(yǔ)

 

從上圖可看出,Service 定義了一個(gè)服務(wù)訪問(wèn)的入口,客戶端通過(guò)這個(gè)入口即可訪問(wèn)服務(wù)背后的應(yīng)用集群實(shí)例,而 Service 則是通過(guò) Label Selector 實(shí)現(xiàn)關(guān)聯(lián)與對(duì)接的,Replica Set 保證服務(wù)集群資源始終處于期望值。

以上只是一個(gè)微服務(wù),通常來(lái)說(shuō)一個(gè)應(yīng)用項(xiàng)目會(huì)由多個(gè)不同業(yè)務(wù)能力而又彼此獨(dú)立的微服務(wù)組成,多個(gè)微服務(wù)間組成了一個(gè)強(qiáng)大而又高可用的應(yīng)用服務(wù)集群。

圖解 K8s 核心概念和術(shù)語(yǔ)

 

Namespace

Namespace 顧名思義是命名空間的意思,在 k8s 中主要用于實(shí)現(xiàn)資源隔離的目的,用戶可根據(jù)不同項(xiàng)目創(chuàng)建不同的 Namespace,通過(guò) k8s 將資源分配到不同 Namespace 中,即可實(shí)現(xiàn)不同項(xiàng)目的資源隔離:

圖解 K8s 核心概念和術(shù)語(yǔ)

 

分享到:
標(biāo)簽:K8s
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定