国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

5分鐘搞懂Kubernetes:輕松理解所有組件

這篇具有很好參考價值的文章主要介紹了5分鐘搞懂Kubernetes:輕松理解所有組件。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

之前我曾經(jīng)提到了一系列關(guān)于服務(wù)網(wǎng)格的內(nèi)容。然而,我意識到有些同學(xué)可能對Kubernetes的了解相對較少,更不用說應(yīng)用服務(wù)網(wǎng)格這個概念了。因此,今天我決定帶著大家快速理解Kubernetes中的一些專有名詞,以便在短時間內(nèi)入門,并減少學(xué)習(xí)的時間。我將在接下來的5分鐘內(nèi)為你介紹這些名詞,希望你能從中獲得一些收獲。如果你覺得有所幫助,請給個贊來鼓勵我吧!你的支持是我前進(jìn)的動力~

Kubernetes

首先,我想強(qiáng)調(diào)的是,在學(xué)習(xí)任何一項知識時,官方文檔都是最重要的資源:https://kubernetes.io/zh-cn/docs/home/

官方文檔提供了詳盡、準(zhǔn)確的信息,幫助我們深入了解和掌握這個技術(shù)。因此,如果你真的對Kubernetes感興趣,我強(qiáng)烈建議你花些時間仔細(xì)閱讀官方文檔。

談到Kubernetes,它是一個開源的容器編排引擎,旨在實現(xiàn)容器化應(yīng)用的自動化部署、擴(kuò)縮和管理。簡而言之,它能夠集中控制多個Docker容器,而不僅限于單獨操作每個容器。在沒有Kubernetes之前,如果我們想要同時操作多個Docker容器,可能需要學(xué)習(xí)并執(zhí)行Shell腳本,這需要花費一些時間。因此,如果你希望實現(xiàn)批量管理Docker容器,Kubernetes就是一個不錯的選擇,當(dāng)然也可以考慮其他類似的產(chǎn)品。

Kubernetes 組件

假設(shè)你已經(jīng)順利完成Kubernetes的安裝。一旦你部署好Kubernetes,你就擁有了一個完整的集群。下面是官方提供的架構(gòu)圖,我們可以參考一下。圖中列出了許多組件的名稱,包括:Node、Pod、kubelet、kube-proxy、kube-apiserver、etcd、kube-scheduler、kube-controller-manager、cloud-controller-manager等一系列專有名詞。接下來,我們將逐一解釋這些名詞的含義。

5分鐘搞懂Kubernetes:輕松理解所有組件

Node

根據(jù)架構(gòu)圖,你可能已經(jīng)猜到Node實際上就是一臺機(jī)器,它負(fù)責(zé)運行容器化的應(yīng)用程序。然而,一個Node上可以運行多個Pod。Pod是Kubernetes的最小調(diào)度單位,通常情況下,一個Pod代表一個微服務(wù)。下面是一個Pod的YAML示例:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
    - name: my-container
      image: nginx:latest

然而,這并不意味著一個Pod只能支持一個docker鏡像。例如,我們的服務(wù)網(wǎng)格中存在邊車模式,允許在同一個Pod中定義多個微服務(wù)。但為什么不在同一個Pod中定義多個微服務(wù)呢?這是因為Pod是最小的調(diào)度單位,它們需要一起啟動和重啟。這種綁定關(guān)系非常嚴(yán)格,因此如果你已經(jīng)有一個集群,為什么不將它們分開定義呢?因此,即使定義多個鏡像,也只需要定義一些輔助功能,如日志收集等。

kubelet

kubelet這個組件在整個Kubernetes系統(tǒng)中扮演著重要的角色。具體而言,控制平面將Pod的定義發(fā)送給kubelet,然后kubelet根據(jù)這些定義來創(chuàng)建和管理Pod中的容器。kubelet負(fù)責(zé)監(jiān)控Pod和容器的狀態(tài),并將這些狀態(tài)信息報告給控制平面??刂破矫婵梢愿鶕?jù)這些狀態(tài)信息來做出調(diào)度和管理決策,以確保整個系統(tǒng)的高效運行。

你可以將kubelet理解為每個項目組的招聘HR,類似于一個項目的招聘負(fù)責(zé)人。而控制平面則可以理解為上層的公司領(lǐng)導(dǎo),他們制定了招聘要求和招聘人數(shù),具體的招聘工作由HR來執(zhí)行。HR的職責(zé)是確保項目有足夠的人員,并且符合公司領(lǐng)導(dǎo)的要求。他們會持續(xù)監(jiān)視項目的人員情況,一旦有人離職,他們會向上級報告,滿足上層的控制平面要求。同時,上層的公司領(lǐng)導(dǎo)與項目人員是沒有直接溝通的,所有的溝通都通過HR進(jìn)行。HR在這個過程中起到了項目人員與上層領(lǐng)導(dǎo)之間的聯(lián)絡(luò)人的作用,負(fù)責(zé)傳遞信息、解決問題和協(xié)調(diào)工作。

kube-proxy

我們在架構(gòu)圖中看到kube-proxy也是與上層有聯(lián)系的。它通過服務(wù)代理和負(fù)載均衡功能,實現(xiàn)了集群內(nèi)部的網(wǎng)絡(luò)通信和流量轉(zhuǎn)發(fā),確保了服務(wù)的可用性和可靠性。

在我們的項目組中,他是誰呢?他是那位真正指導(dǎo)Pod要執(zhí)行哪些任務(wù)的人??梢哉f,他擔(dān)任著項目組中開發(fā)leader的角色,或者像項目經(jīng)理一樣的角色。他負(fù)責(zé)指導(dǎo)我們要做什么任務(wù),一旦有需求,他會負(fù)責(zé)轉(zhuǎn)發(fā)和分配工作。

然而,需要注意的是,他并不直接與Pod進(jìn)行網(wǎng)絡(luò)通信,而是與Service對象進(jìn)行溝通。

Service

在上述情況中,我們引入了Service對象。實際上,Service對象代表了一組Pod資源。在生產(chǎn)環(huán)境中,我們通常不會只部署一個服務(wù)來處理請求,而是會有多個Pod副本同時處理。因此,我們需要一個Service對象將它們歸類在一起,以便kube-proxy可以進(jìn)行負(fù)載均衡轉(zhuǎn)發(fā)等操作。只要Pod中的labels標(biāo)簽后面的key:value匹配,就可以將請求轉(zhuǎn)發(fā)給相應(yīng)的Pod副本。metadata下的labels字段可以包含任何鍵值對,只要符合key:value的格式即可。

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app.kubernetes.io/name: proxy
spec:
  containers:
  - name: nginx
    image: nginx:stable
    ports:
      - containerPort: 80
        name: http-web-svc

---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app.kubernetes.io/name: proxy
  ports:
  - name: name-of-service-port
    protocol: TCP
    port: 80
    targetPort: http-web-svc

控制平面組件

控制平面組件在集群中扮演著重要角色,它們負(fù)責(zé)做出全局決策,例如資源的調(diào)度,以及監(jiān)測和響應(yīng)集群事件,比如當(dāng)部署的replicas字段不滿足時,啟動新的Pod??刂破矫娼M件可以在集群中的任何節(jié)點上運行。然而,為了簡化設(shè)置和管理,通常會在同一臺計算機(jī)上啟動所有控制平面組件,并且不會在該計算機(jī)上運行用戶容器??梢詫⑵漕惐葹楣径聲?,他們負(fù)責(zé)決策和管理,與實際執(zhí)行工作的Pod之間關(guān)系不直接。

kube-apiserver

通過這個名字,你可以推斷出他負(fù)責(zé)處理并調(diào)用其他組件來完成所有API請求。舉個例子,我們之前定義了一個Pod的YAML格式文件。通過在后臺執(zhí)行kubectl apply -f your-pod.yaml,kube-apiserver就會接收到你的請求,并將其轉(zhuǎn)發(fā)給誰呢?正如我們之前提到的,它會將請求轉(zhuǎn)發(fā)給kubelet,kubelet負(fù)責(zé)與Docker進(jìn)行交互并進(jìn)行創(chuàng)建等操作。因此,kube-apiserver就像是我們的控制器一樣,直接接收請求但不處理它們。

etcd

etcd是一種用作Kubernetes所有集群數(shù)據(jù)的后臺數(shù)據(jù)庫。不僅可以存儲你能想到的所有數(shù)據(jù),而且采用分布式存儲方式,基于Raft算法確保數(shù)據(jù)的一致性。這使得所有節(jié)點都能保持?jǐn)?shù)據(jù)的一致性,因為etcd存儲了集群的配置數(shù)據(jù)、狀態(tài)信息和元數(shù)據(jù)。作為集群的“大腦”,etcd存儲了關(guān)于容器、節(jié)點、Pod、服務(wù)和其他資源的信息。通過監(jiān)視etcd中的數(shù)據(jù)變化,服務(wù)發(fā)現(xiàn)機(jī)制能夠?qū)崿F(xiàn)自動的服務(wù)注冊和發(fā)現(xiàn)。當(dāng)新的Pod或服務(wù)被創(chuàng)建時,它們會在etcd中注冊相關(guān)信息。其他組件或應(yīng)用程序可以通過查詢etcd來獲取這些信息,從而實現(xiàn)服務(wù)之間的通信和協(xié)調(diào)。

kube-scheduler

我們當(dāng)時說kubelet是負(fù)責(zé)管理該節(jié)點上的容器和Pod,那么誰來調(diào)度呢?就是由kube-scheduler負(fù)責(zé)。kube-scheduler的主要職責(zé)是從可用節(jié)點中選擇最優(yōu)節(jié)點來運行Pod,以確保資源的均衡分配,避免機(jī)器資源的浪費。由于控制平面組件較多,為了更好地理解它們各自的作用,我還額外準(zhǔn)備了一張圖來清晰地展示。

5分鐘搞懂Kubernetes:輕松理解所有組件

kube-controller-manager

kube-controller-manager是Kubernetes集群中不可或缺的核心組件之一,它的主要職責(zé)是運行一系列控制器,以確保集群的狀態(tài)始終維持在預(yù)期的狀態(tài)。為了更好地理解其功能,我們以Deployment Controller管理器為例進(jìn)行說明,而其他控制器的詳細(xì)信息則可以通過自行查詢來獲取。

Deployment Controller是一個負(fù)責(zé)管理應(yīng)用部署的組件。它的主要功能是根據(jù)用戶定義的期望狀態(tài)來控制ReplicaSet的創(chuàng)建、更新和刪除操作,從而實現(xiàn)應(yīng)用的滾動升級和回滾。舉一個例子。當(dāng)一個Pod掛掉時,kubelet會首先監(jiān)測到該Pod的狀態(tài)改變,并將這個信息傳遞給kube-controller-manager中的Replication Controller(如果該Pod是由Replication Controller創(chuàng)建的)。Replication Controller是負(fù)責(zé)維護(hù)Pod副本數(shù)量的控制器之一。

一旦Replication Controller接收到關(guān)于Pod狀態(tài)改變的通知,它將檢查集群中當(dāng)前的Pod副本數(shù)量,并根據(jù)其定義的副本數(shù)量進(jìn)行調(diào)整。如果發(fā)現(xiàn)當(dāng)前的Pod數(shù)量少于所需的副本數(shù)量,Replication Controller將發(fā)出指令給kubelet,在相應(yīng)的節(jié)點上重新創(chuàng)建缺失的Pod來滿足副本數(shù)量的要求。之前我們不是一直說將kubelet比作是HR嗎?上層領(lǐng)導(dǎo)找到了就是Deployment Controller。

注意不管是什么管理層Controller都要走kube-apiserver這一層。只有他才有資格調(diào)用其他組件kube-apiserver。

cloud-controller-manager

cloud-controller-manager是一個可選的組件,它提供了與云平臺相關(guān)的控制器。對于我們來說,它可能看起來與我們的工作無關(guān)。cloud-controller-manager在與云平臺的API進(jìn)行交互時,能夠管理云資源,例如負(fù)載均衡器、節(jié)點組、存儲卷等。這使得我們能夠獲得更豐富的云資源管理功能。需要注意的是,cloud-controller-manager的具體功能和行為是根據(jù)所使用的云平臺而定的。因此,它可以根據(jù)我們所用的云平臺提供適當(dāng)?shù)慕鉀Q方案。

總結(jié)

在本文中,我向大家介紹了Kubernetes中的一些專有名詞。Kubernetes是一個非常強(qiáng)大的容器編排引擎,可以幫助我們自動化部署、擴(kuò)展和管理容器化應(yīng)用程序。通過了解這些專有名詞,我們可以更好地理解Kubernetes的工作原理和架構(gòu)。因為大家的時間都很寶貴,所以我盡量減少閱讀時間帶大家快速入門Kubernetes,覺得不錯,給個贊吧~文章來源地址http://www.zghlxwxcb.cn/news/detail-752631.html

到了這里,關(guān)于5分鐘搞懂Kubernetes:輕松理解所有組件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 5分鐘搞懂MySQL - 行轉(zhuǎn)列

    5分鐘搞懂MySQL - 行轉(zhuǎn)列

    小伙伴想精準(zhǔn)查找自己想看的MySQL文章?喏 → MySQL專欄目錄 | 點擊這里 ??MySQL 行轉(zhuǎn)列 ,對經(jīng)常處理數(shù)據(jù)的同學(xué)們來說,一定是不陌生的,甚至是印象深刻,因為它大概率困擾過你,讓你為之一愣~ 但當(dāng)你看到本文后,這個問題就不在是問題,及時收藏,以后誰再問你這個問

    2023年04月08日
    瀏覽(15)
  • 2分鐘徹底搞懂“高內(nèi)聚,低耦合”

    2分鐘徹底搞懂“高內(nèi)聚,低耦合”

    ??推薦閱讀文章?? ?? JavaSE系列 ????1??《JavaSE系列教程》 ?? MySQL系列 ????2??《MySQL系列教程》 ?? JavaWeb系列 ????3??《JavaWeb系列教程》 ?? SSM框架系列 ????4??《SSM框架系列教程》 ??本博客知識點收錄于??????《SSM框架系列教程》??—??01【高內(nèi)聚

    2024年03月23日
    瀏覽(26)
  • 5分鐘搞懂矩陣乘法的本質(zhì)

    5分鐘搞懂矩陣乘法的本質(zhì)

    大家好啊,我是董董燦。 很多與深度學(xué)習(xí)算法相關(guān)的面試,面試官可能都會問一類問題,那就是你是如何理解矩陣乘算法的。 更有甚者,會讓你當(dāng)場手寫矩陣乘算法,然后問細(xì)節(jié),問如何優(yōu)化,面試現(xiàn)場,殘忍至極。 那矩陣乘法的本質(zhì)到底是什么呢?為什么在神經(jīng)網(wǎng)絡(luò)中,

    2024年02月04日
    瀏覽(17)
  • 5分鐘搞懂池化的本質(zhì)

    5分鐘搞懂池化的本質(zhì)

    大家好啊,我是董董燦! 在很多與計算機(jī)視覺相關(guān)的神經(jīng)網(wǎng)絡(luò)中,我們往往都會看到池化這一算法,它一般跟在卷積層后面。 神經(jīng)網(wǎng)絡(luò)中用到最多的池化方式無外乎是最大池化和平均池化。兩者運算接近,區(qū)別在于是在kernel范圍內(nèi)取最大值還是取平均值來作為池化的輸出。

    2024年02月15日
    瀏覽(16)
  • 3分鐘搞懂:JavaScript 和 ECMAScript

    ECMAScript 是 JavaScript 語言的 國際標(biāo)準(zhǔn) ,JavaScript 是 ECMAScript 的 一種實現(xiàn) (Adobe ActionScript 和 JScript 同樣實現(xiàn)了 ECMAScript)。 ECMAScript 是歐洲計算機(jī)制造商協(xié)會 ECMA(European Computer Manufacturers Association)發(fā)布的瀏覽器腳本語言標(biāo)準(zhǔn)。它是 262 號標(biāo)準(zhǔn)文件,又叫 ECMA-262。 ECMAScript 定義

    2023年04月22日
    瀏覽(27)
  • 建議收藏,輕松搞懂區(qū)塊鏈

    建議收藏,輕松搞懂區(qū)塊鏈

    未來已來,只是不均衡地分布在當(dāng)下 大家好,我是菜農(nóng),歡迎來到我的頻道。 本文共 5844字,預(yù)計閱讀 30 分鐘 區(qū)塊鏈?zhǔn)墙┠陙碜顭衢T的前沿技術(shù),被認(rèn)為是未來十幾年對金融、物聯(lián)網(wǎng)、醫(yī)療等諸多領(lǐng)域產(chǎn)生最大影響的\\\"黑科技\\\"之一。 在本篇中我們將掌握區(qū)塊鏈的 基本概念

    2024年02月02日
    瀏覽(19)
  • 3分鐘帶你徹底搞懂 Kafka

    3分鐘帶你徹底搞懂 Kafka

    實時數(shù)據(jù)處理 ,從名字上看,很好理解,就是將數(shù)據(jù)進(jìn)行實時處理,在現(xiàn)在流行的微服務(wù)開發(fā)中,最常用實時數(shù)據(jù)處理平臺有 RabbitMQ、RocketMQ 等消息中間件。 這些中間件,最大的特點主要有兩個: 服務(wù)解耦 流量削峰 在早期的 web 應(yīng)用程序開發(fā)中,當(dāng)請求量突然上來了時候,

    2024年04月16日
    瀏覽(27)
  • 10分鐘從源碼級別搞懂AQS(AbstractQueuedSynchronizer)

    10分鐘從源碼級別搞懂AQS(AbstractQueuedSynchronizer)

    上篇文章15000字、6個代碼案例、5個原理圖讓你徹底搞懂Synchronized有說到synchronized由object monitor實現(xiàn)的 object monitor中由cxq棧和entry list來實現(xiàn)阻塞隊列,wait set實現(xiàn)等待隊列,從而實現(xiàn)synchronized的等待/通知模式 而JDK中的JUC并發(fā)包也通過類似的阻塞隊列和等待隊列實現(xiàn)等待/通知模

    2024年02月10日
    瀏覽(51)
  • Linux 有哪些搜索方式?5分鐘帶你搞懂!

    Linux 有哪些搜索方式?5分鐘帶你搞懂!

    5分鐘帶你掌握 Linux 的三種搜索方式 1.find 命令 find 命令是用來在給定的目錄下查找符合給定條件的文件 語法格式: find [查找起始路徑] [查找條件] [處理動作] (1)根據(jù)名稱查找: find [查找起始路徑] -name 文件名 或者 find [查找起始路徑] -iname 文件名 -name \\\"PATERN\\\":完全匹配文

    2024年01月16日
    瀏覽(24)
  • API 掃盲貼,8分鐘快速搞懂 API 框架

    API 掃盲貼,8分鐘快速搞懂 API 框架

    API(應(yīng)用程序編程接口)是一種傳遞信息和指令的工具,它通過不同的功能和協(xié)議等手段,允許不同的軟件或系統(tǒng)之間進(jìn)行通信和交互。作為程序員或開發(fā)人員,API 是你日常工作中必不可少的組成部分。在本文中,我們將深入探討 API 的定義、種類和主要功能,幫助新手們快

    2024年02月06日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包