濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫(kù) > Kubernetes(k8s)基礎(chǔ)介紹

Kubernetes(k8s)基礎(chǔ)介紹

熱門標(biāo)簽:新鄉(xiāng)人工智能電話機(jī)器人加盟 昆明外呼系統(tǒng) 福州呼叫中心外呼系統(tǒng)哪家好 地圖標(biāo)注w是什么方向 地圖標(biāo)注需要提交啥資料入駐 400電話申請(qǐng)找哪家公司 臨汾電銷機(jī)器人費(fèi)用 七大洲地圖標(biāo)注 河南省鄭州市地圖標(biāo)注

之前我一直想學(xué)習(xí)Kubernetes,因?yàn)樗犉饋砗苡幸馑迹ㄈ绻闶窍ED人,你會(huì)覺得這個(gè)名字很有問題),但我從來沒有機(jī)會(huì),因?yàn)槲覜]有任何東西需要運(yùn)行在集群中。而最近,我的工作中開始逐步涉及Kubernetes相關(guān)的事情,所以這次我抓住機(jī)會(huì),開始查資料,但后來我發(fā)現(xiàn)目前所有的資料(包括官方教程)都過于冗長(zhǎng),結(jié)構(gòu)也不合理,這讓我一開始有點(diǎn)沮喪。

經(jīng)過幾天的研究,我開始逐步理解Kubernetes的核心理念,并且把他部署到了生產(chǎn)環(huán)境中。因?yàn)槲业暮?jiǎn)歷現(xiàn)在說自己是個(gè)“Kubernetes專家”,一個(gè)想法立刻誕生了:為什么不把我對(duì)這個(gè)系統(tǒng)的寬泛理解以及我已經(jīng)耗費(fèi)了幾個(gè)小時(shí)的研究所收集的知識(shí)讓更多人看到?雖然我無法說服自己不應(yīng)該再寫另一篇漫無目的的文章,但是我很快就明白了:
這就是那篇文章。

我在現(xiàn)有文章中遇到的主要問題是,在深入研究具體細(xì)節(jié)之前,我找不到的任何內(nèi)容總結(jié)了這些組件是什么以及它們?nèi)绾谓M合起來的高級(jí)概述。 而這種高屋建瓴的呈現(xiàn)方式是我學(xué)習(xí)最好的方式。我是以這種方式來寫的,希望它也適合你。如果你知道任何描述了Kubernetes如何工作,而且讓人容易理解的專家級(jí)的文章/教程,請(qǐng)不要告訴我,因?yàn)槟阍谖倚枰愕臅r(shí)候你在哪里,現(xiàn)在我寫了我的文章而你卻沒有及早把它拿出來。

另外請(qǐng)記住,我實(shí)際上只學(xué)習(xí)了Kubernetes一個(gè)星期左右,所以學(xué)得不會(huì)非常深入,有些可能是不準(zhǔn)確的,希望沒有什么錯(cuò)誤,這里的信息應(yīng)該足夠讓你達(dá)到運(yùn)行簡(jiǎn)單集群的程度。

話雖如此,最后我發(fā)現(xiàn)Kubernetes中的概念還是非常簡(jiǎn)單的,雖然我確信有很多東西我還不知道。但是,我知道的事情就足以建立一個(gè)集群并讓我們的應(yīng)用在其上運(yùn)行,而且我很確定它們足以讓大多數(shù)人知道如何開始。

基本概念

我們需要做的第一件事是詳細(xì)介紹Kubernetes的各個(gè)部分:

  • 控制平面(Control plane):顧名思義,這是控制其他一切的部分,這也是我一無所知的部分,因?yàn)槲覀冎皇窍騺嗰R遜付費(fèi),讓亞馬遜幫我們處理這部分。我的理解是,這是最好的決定,除非你是谷歌,否則你應(yīng)該付費(fèi)給一些公司,讓他們?yōu)槟愎芾怼?/li>
  • 節(jié)點(diǎn)(Nodes):節(jié)點(diǎn)本質(zhì)上就是一臺(tái)服務(wù)器,就像您付費(fèi)的物理機(jī)worker一樣。 這是所有代碼部署的地方,將裸服務(wù)器變成節(jié)點(diǎn)的方法是在其上安裝Docker,kubelet,kube-proxy和其他一些東西。本文假設(shè)您的群集中已有一些worker。
  • 容器集(Pod):Pod是容器集合。 這是您的代碼所在的位置,通常每個(gè)容器都有一個(gè)Pod,盡管您可能希望將一些密切相關(guān)的服務(wù)放在同一個(gè)Pod中。 Pod在單個(gè)節(jié)點(diǎn)上運(yùn)行(但是一個(gè)節(jié)點(diǎn)可以運(yùn)行許多Pod),這意味著Pod中的所有容器將具有相同的IP地址,并且它們可以通過連接到localhost上的彼此端口來相互通信。Pod在部署后無法更新,只能刪除或替換它們。
  • 部署(Deployments): Deployment是您將Pod實(shí)際部署到群集的方式。 您可以在沒有Deployment的情況下運(yùn)行Pod,但如果沒有Deployment,則無法輕松指定所需的副本數(shù)量,在失敗時(shí)自動(dòng)重新部署Pod,回滾到早期狀態(tài)等。Deployment使代碼生命周期管理變得更容易,并且您可以使用它來使Docker鏡像在Kubernetes上運(yùn)行。
  • 服務(wù)(Service):服務(wù)允許您從一個(gè)Pod打開端口到其他Pod,并指定一個(gè)Pod的DNS名稱,以便能夠查找并連接到群集中的其他Pod。
  • 入口(Ingress):Ingresses是你如何告訴你的Ingress控制器(通常是像Traefik這樣的web server)向外界暴露什么,以及在哪個(gè)路徑或主機(jī)名上。 入口將映射到將實(shí)際應(yīng)答該請(qǐng)求的Pod。本教程也假設(shè)您已經(jīng)配置了入口,雖然設(shè)置Traefik來做到這一點(diǎn)不應(yīng)該非常困難(在用他們的教程時(shí)請(qǐng)使用Deployment方法)。

所有這些都可以使用命令行的kubectl創(chuàng)建,或者更安全地通過YAML文件創(chuàng)建,該文件將包含您要部署的內(nèi)容的定義和詳細(xì)信息(然后執(zhí)行kubectl apply -f <yaml file>)。

概括地講,您把容器放入pods中,這些pods將由deployment創(chuàng)建和部署,其網(wǎng)絡(luò)將由service處理,并添加ingress以便外部世界可以訪問您的服務(wù)器。

讓我們逐個(gè)介紹這些部分,看看它們的YAML配置是什么樣的。

The Pod

讓我們看一下將在容器中運(yùn)行Redis鏡像的pod的YAML配置。 請(qǐng)記住,Pod并不是持久性的,所以你幾乎不會(huì)直接使用它。 相反,您將使用deployment間接部署Pod,我們將在下面介紹。

以下配置示例僅供您進(jìn)行修改。 你只需要看看它,然后繼續(xù)閱讀,不要停下來驚嘆它的美麗。

正如您所看到的,它非常簡(jiǎn)單,您添加了一堆Kubernetes特定的東西,每個(gè)都只是復(fù)制粘貼,然后您聲明此配置是為Pod,給它一個(gè)名稱,指定在其中運(yùn)行的容器和他們監(jiān)聽的端口,請(qǐng)刪除整個(gè)文件吧,你已經(jīng)準(zhǔn)備好了!

Kubernetes官方文檔中提供了更多關(guān)于Pod的信息。

The Deployment

以下是您實(shí)際運(yùn)行上述Pod的方式,即使用deployment。 請(qǐng)記住,您根本不需要關(guān)注上面的Pod配置,我們將在deployment里重新定義它。

您會(huì)注意到這主要是上面的Pod配置,但有一些額外的配置,如副本(replica)等。這些定義了deployment的名稱以及我們要部署的副本數(shù)量。 更改副本數(shù)量,將會(huì)部署更多template部分中指定的Pod。

Kubernetes官方文檔中提供了更多關(guān)于Deployments的信息。

The Service

現(xiàn)在我們已經(jīng)部署了一個(gè)Pod,我們需要將其端口暴露給集群的其余部分。 部署中的containerPort指令暴露了Docker端口,但實(shí)際上并不轉(zhuǎn)發(fā)主機(jī)上的端口,因此多個(gè)Pod(不是同一Pod中的容器)可以使用相同的端口而不會(huì)發(fā)生沖突。

要將上面的端口實(shí)際暴露給集群上運(yùn)行的其他Pod,我們需要為它創(chuàng)建一個(gè)Service。 這將創(chuàng)建轉(zhuǎn)發(fā)端口所需的規(guī)則,并為我們提供DNS條目,我們可以使用該條目來解析該P(yáng)od的IP。

這會(huì)將Redis端口暴露給集群中的其他Pod,可以通過my-service:6379連接它。

要部署你的應(yīng)用中更多部分,只需將另一個(gè)deployment和關(guān)聯(lián)的Service添加到群集即可。 您可以使用與上面的Redis完全相同的方式部署主應(yīng)用程序服務(wù)。

The Ingress

最后,我們可以使用Ingress將我們的服務(wù)暴露給互聯(lián)網(wǎng)。 這里是使用Traefik的一個(gè)例子,雖然您可能實(shí)際上并不想將Redis暴露給外面的世界,但同樣的方法適用于您自己的應(yīng)用程序。

這一節(jié)配置是告訴Traefik你希望所有名為redis.yourdomain.com的主機(jī)上的流量都轉(zhuǎn)發(fā)到我的服務(wù)端口6379。據(jù)我所知,這只是針對(duì)Traefik的配置。 在應(yīng)用配置后,Pod將通過redis.yourdomain.com上的Traefik暴露到互聯(lián)網(wǎng)。

我希望這篇文章對(duì)初學(xué)者有用。這篇文章很簡(jiǎn)短,因?yàn)镵ubernetes的基礎(chǔ)很短,但我們?cè)O(shè)法涵蓋了如何以最小的麻煩來運(yùn)行服務(wù)。

現(xiàn)在你應(yīng)該懂Kubernetes是什么了!

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

標(biāo)簽:股票 紅河 鎮(zhèn)江 岳陽 烏海 臨沂 ???/a> 四川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Kubernetes(k8s)基礎(chǔ)介紹》,本文關(guān)鍵詞  Kubernetes,k8s,基礎(chǔ),介紹,Kubernetes,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Kubernetes(k8s)基礎(chǔ)介紹》相關(guān)的同類信息!
  • 本頁收集關(guān)于Kubernetes(k8s)基礎(chǔ)介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    凤凰县| 北安市| 铜山县| 舞阳县| 五指山市| 长子县| 东阿县| 洪泽县| 阿瓦提县| 长海县| 柯坪县| 宁陵县| 夏河县| 赤壁市| 杭州市| 道孚县| 芮城县| 沙洋县| 准格尔旗| 轮台县| 平昌县| 夏津县| 麟游县| 巴里| 华池县| 克山县| 神农架林区| 漳州市| 辰溪县| 北流市| 临沂市| 当涂县| 凉城县| 容城县| 定兴县| 喀喇| 浏阳市| 鄄城县| 高尔夫| 临邑县| 宜兰市|