日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
K8s長什么樣?一文道清它的整體架構(gòu)

所以嘗試重新組織語言、文章段落,把 K8s 的這些知識寫的更有層次些,讓大家更容易讀懂,更有溫度,不再是覺得對文檔的翻譯和概念的堆砌。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、綏中網(wǎng)站維護(hù)、網(wǎng)站推廣。

K8s基礎(chǔ)入門和實踐--大綱

前三篇理論,后兩篇實踐,理論篇也會有一些例子,不會讓文章內(nèi)容太枯燥。其實之前已經(jīng)寫過一篇 Docker 與 K8s 的關(guān)系,算是進(jìn)入K8s學(xué)習(xí)之前的預(yù)熱,先分清兩者的關(guān)系。

本篇文章聚焦K8s的整體架構(gòu),給大家描繪出K8s的大致模樣。

K8s 是什么

Kubernetes(單詞太長,后面用 K8s 代替 )是一個基于容器技術(shù)的分布式架構(gòu)方案,它源自Google內(nèi)部大規(guī)模集群管理系統(tǒng)——Borg,自2015年開源后得到開源社群的全力支援,IBM、惠普、微軟、RedHat等業(yè)界巨頭紛紛加入,成為后來的 CNCF 組織(Cloud Native Computing Foundation,云原生計算基金會)首個畢業(yè)的項目。

K8s 具備完善的集群管理能力,包括多層次的安全防護(hù)和準(zhǔn)入機(jī)制、多租戶應(yīng)用支撐能力、透明的服務(wù)注冊和服務(wù)發(fā)現(xiàn)機(jī)制、內(nèi)建負(fù)載均衡器、故障發(fā)現(xiàn)和自我修復(fù)能力、服務(wù)滾動升級和線上擴(kuò)容、可擴(kuò)展的資源自動調(diào)度機(jī)制、多粒度的資源配額管理能力。還提供完善的管理工具,涵蓋開發(fā)、部署測試、運維監(jiān)控等各個環(huán)節(jié)。

總結(jié)一句話:是一套結(jié)合了容器編排和集群調(diào)度管理的大規(guī)模分布式系統(tǒng)解決方案。

K8s 長什么樣子

K8s 不是我們現(xiàn)實可以看到摸到的一個東西,所以初學(xué)者看完 K8s 是什么的描述后,可能也是覺得云里霧里。那么這里我就嘗試描繪一下 K8s 它到底長什么樣子。描述一個解決方案的樣貌,其實直白點說就是它的整體架構(gòu)是什么樣的,由哪些核心部分組成,每個部分相互怎么交互這些。

我們先來看一下K8s的整體的結(jié)構(gòu)。

K8s 的整體結(jié)構(gòu)

K8s 采用Master / Work Node(最初稱為Minion,后改名Node) 的結(jié)構(gòu),Master Node(主節(jié)點)控制整個集群,Work Node(從節(jié)點)為集群提供計算能力。使用者可以通過命令行或者 Web 控制臺頁面的方式來操作集群。

下圖可以清楚地表示出 K8s 的整體架構(gòu)

K8s 的整體架構(gòu)圖

了解到 K8s 由主節(jié)點、工作節(jié)點兩大部分組成后,接下來我們逐一展開,看看主節(jié)點和工作節(jié)點分別由哪些組件構(gòu)成。

主節(jié)點

Master 節(jié)點是 K8s 集群的大腦,負(fù)責(zé)向外開放集群的 API,調(diào)度和管理整個集群。集群至少要有一個Master節(jié)點,如果在生產(chǎn)環(huán)境中要達(dá)到高可用,還需要配置 Master 集群。

下面這張圖,描繪出了主節(jié)點內(nèi)部的結(jié)構(gòu)。

K8s主節(jié)點內(nèi)部結(jié)構(gòu)

Master主要包含 API Server、Scheduler、Controllers? 三個組成部分, 以及用作存儲的 etcd,它用來儲存整個集群的狀態(tài)。

  • etcd:由CoreOS開發(fā),是一個高可用、強(qiáng)一致性的鍵值存儲,為Kubernetes集群提供儲存服務(wù),類似于zookeper。它會存儲集群的整個配置和狀態(tài)。主節(jié)點通過查詢 etcd 以檢查節(jié)點,容器的現(xiàn)狀。
  • API Server:kubernetes最重要的核心元件之一,提供資源操作的唯一入口(其他模塊通過API Server查詢或修改資源對象,只有API Server才能直接操作etcd),并提供認(rèn)證、授權(quán)、訪問控制、API注冊和發(fā)現(xiàn)等機(jī)制。
  • Scheduler:負(fù)責(zé)資源的調(diào)度,按照預(yù)定的調(diào)度策略將 Pod(k8s中調(diào)度的基本單位)調(diào)度到相應(yīng)的Node上,這里說的 Node 就是Work Node,當(dāng)然如果是只有一個節(jié)點的集群,Master 也會同時作為 Work Node。
  • Controllers:通過 API Server 查詢要控制的資源對象的預(yù)期狀態(tài),它檢查其管控的對象的當(dāng)前狀態(tài),確保它們始終處于預(yù)期的工作狀態(tài),它們的工作包括比如故障檢測、自動擴(kuò)充、減少、滾動更新等。

我們能接觸到的控制器有,下面這些:

  • Deployment
  • StatuefulSet
  • Service
  • DaemonSet
  • Ingress

具體干什么的,放到下篇文章—K8s面向?qū)ο笤僭敿?xì)介紹,沒錯想用K8s,你也得面向?qū)ο?,可怕不。到時候會結(jié)合著例子一塊看。

我們繼續(xù)看K8s 的工作節(jié)點的內(nèi)部結(jié)構(gòu)。

工作節(jié)點

K8s 集群的工作節(jié)點,可以是物理機(jī)也可以是虛擬機(jī)器。Node 上運行的主要 K8s 組件有kubelet、kube-proxy、Container Runtime 、Pod 等。

K8s 工作節(jié)點的內(nèi)部結(jié)構(gòu)

kubelet

K8s 集群的每個工作節(jié)點上都會運行一個 kubelet 程序 維護(hù)容器的生命周期,它接收并執(zhí)行Master 節(jié)點發(fā)來的指令,管理節(jié)點上的 Pod 及 Pod 中的容器。同時也負(fù)責(zé)Volume(CVI)和網(wǎng)絡(luò)(CNI)的管理。

每個 kubelet 程序會在 API Server 上注冊節(jié)點自身的信息,定期向Master節(jié)點匯報自身節(jié)點的資源使用情況,并通過cAdvisor監(jiān)控節(jié)點和容器的資源。

通過運行 kubelet,節(jié)點將自身的 CPU,RAM 和存儲等計算機(jī)資源變成集群的一部分,相當(dāng)于是放進(jìn)了集群統(tǒng)一的資源管理池中,交由 Master 統(tǒng)一調(diào)配。

Container Runtime

容器運行時負(fù)責(zé)與容器實現(xiàn)進(jìn)行通信,完成像容器鏡像庫中拉取鏡像,然后啟動和停止容器等操作, 引入容器運行時另外一個原因是讓 K8s 的架構(gòu)與具體的某一個容器實現(xiàn)解耦,不光是 Docker 能運行在 K8s 之上,同樣也讓K8s 的發(fā)展按自己的節(jié)奏進(jìn)行。

想要運行在我的生態(tài)里的容器,請實現(xiàn)我的CRI (Container Runtime Interface),Container Runtime 只負(fù)責(zé)調(diào)用CRI 里定義的方法完成容器管理,不單獨執(zhí)行 docker run 之類的操作。這個也是K8s 發(fā)現(xiàn)Docker 制約了它的發(fā)展在 1.5 后引入的。

Pod

Pod 是 K8s 中的最小調(diào)度單元。我們的應(yīng)用程序運行在容器里,而容器又被分裝在 Pod 里。一個 Pod 里可以有多個容器,也可以有多個容器。沒有統(tǒng)一的標(biāo)準(zhǔn),是單個還是多個,看要運行的應(yīng)用程序的性質(zhì)。不過一個 Pod 里只有一個主容器,剩下的都是輔助主容器工作的。

比如做服務(wù)網(wǎng)格 Istio 的 Envoy 網(wǎng)關(guān),就是放在Pod的輔助容器運行來實現(xiàn)流量控制的。 這就是 K8s 的容器設(shè)計模式里最常用的一種模式:sidecar。顧名思義,sidecar 指的就是我們可以在一個Pod中,啟動一個輔助容器,來完成一些獨立于主進(jìn)程(主容器)之外的工作。

kube-proxy

為集群提供內(nèi)部的服務(wù)發(fā)現(xiàn)和負(fù)載均衡,監(jiān)聽 API Server 中 Service 控制器和它后面掛的 endpoint 的變化情況,并通過 iptables 等方式來為 Service 的虛擬IP、訪問規(guī)則、負(fù)載均衡。

總結(jié)

本篇文章聚焦K8s的整體架構(gòu),給大家描繪出K8s的大致模樣。下一節(jié)我們來說說 K8s 的面向?qū)ο螅约拔覀兡芙佑|到的常用控制器對象。此刻看到這句話你的心情可能是:"納尼,這廝也是面向?qū)ο螅棵嫦驅(qū)ο?,怎么老是你?

是的,K8s 也是面向?qū)ο蟮?,而且面向的還很徹底,就跟某語言說的一切皆對象一樣徹底。不過正因為它是面向?qū)ο蟮?,那么以面向?qū)ο蟮姆绞絹硭伎歼@些東西,反而會很好理解,畢竟我們每天都要面向"對象",不是么:)。


新聞標(biāo)題:K8s長什么樣?一文道清它的整體架構(gòu)
轉(zhuǎn)載源于:http://www.dlmjj.cn/article/dhcjigp.html