那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Kubernetes組件pod核心原理

Linux愛好者 ? 來源:CSDN博客 ? 作者:inicho ? 2021-09-02 09:27 ? 次閱讀

1. 核心組件原理 —— pod 核心原理

1.1 pod 是什么

pod 也可以理解是一個容器,裝的是 docker 創(chuàng)建的容器,也就是用來封裝容器的一個容器;

pod 是一個虛擬化分組, 有自己的 IP 地址和主機(jī)名 hostname,利用 namespace 進(jìn)行資源隔離,相當(dāng)于一臺獨立沙箱環(huán)境;

pod 相當(dāng)于一臺獨立主機(jī),內(nèi)部可以封裝一個或多個容器(通常是一組相關(guān)的容器),內(nèi)部容器之間訪問采用 localhost。

1.2 pod 用來干什么

通常情況下,在服務(wù)部署的時候,使用 pod 來管理一組相關(guān)的服務(wù)(一個 pod 中要么部署一個服務(wù),要么部署一組有關(guān)系的服務(wù))。如下圖是部署了一組有關(guān)系的服務(wù)的結(jié)構(gòu)圖,其中 C 表示容器(container),下面的 pod 里就有很多個容器。

如何理解一組相關(guān)的服務(wù)?

如下圖:有一個請求是訪問 Nginx,然后部署了 Nginx 的容器就把請求轉(zhuǎn)發(fā)給部署了 web 服務(wù)的容器,web 再訪問數(shù)據(jù)庫,然后請求會依次返回來數(shù)據(jù),最后再返回給用戶。因此在 鏈?zhǔn)秸{(diào)用的調(diào)用鏈路上的服務(wù) 叫做一組相關(guān)的服務(wù)。

1.3 實現(xiàn) web 服務(wù)集群

只需要復(fù)制多個 pod 的副本即可,這也是 k8s 管理的先進(jìn)之處。k8s 如果要進(jìn)行擴(kuò)容或縮容,只需要控制 pod 的數(shù)量即可。比如上面那個部署模式,服務(wù)集群就是復(fù)制多個這樣的 pod。

1.4 pod 底層網(wǎng)絡(luò)和數(shù)據(jù)存儲是如何進(jìn)行的

前面說過 pod 內(nèi)部的容器也是一個獨立的沙箱環(huán)境,因此也有自己的 ip 和 端口。如果內(nèi)部容器還是通過 ip:port 來通信,相當(dāng)于還是遠(yuǎn)程訪問,這樣的話性能會受到一定的影響。如何提高內(nèi)部容器之間訪問的性能呢?

pod 底層

pod 內(nèi)部容器創(chuàng)建之前,必須先創(chuàng)建 pause 容器。pause 有兩個作用:共享網(wǎng)絡(luò)和共享存儲。

每個服務(wù)容器共享 pause 存儲,不需要自己存儲數(shù)據(jù),都交給 pause維護(hù)。

pause 也相當(dāng)于這三個容器的網(wǎng)卡,因此他們之間的訪問可以通過 localhost 方式訪問,相當(dāng)于訪問本地服務(wù)一樣,性能非常高(就像本地幾臺虛擬機(jī)之間可以 ping 通)。

2. ReplicaSet 副本控制器

2.1 副本控制器基本理解

作用:管理控制 pod 副本(服務(wù)集群)的數(shù)量,以使其永遠(yuǎn)與預(yù)期設(shè)定的數(shù)量保持一致。例如:replicas = 3 (創(chuàng)建 3 個副本,這是提前設(shè)置好的)

當(dāng)副本設(shè)置為 3 時,副本控制器將會永遠(yuǎn)保證副本數(shù)量為 3。因此當(dāng)有 pod 服務(wù)宕機(jī)時(如上面第 3 個 pod),那副本控制器會立馬重新創(chuàng)建一個新的 pod,就能夠保證副本數(shù)量一直為預(yù)先設(shè)定好的 3 個。

2.2 ReplicaSet 和 ReplicationController 的區(qū)別

ReplicaSet 和 ReplicationController 都是副本控制器,其中:

相同點:都有前面 2.1 節(jié)所描述的功能

不同點:標(biāo)簽選擇器的功能不同。ReplicaSet 可以使用標(biāo)簽選擇器進(jìn)行 單選 和 復(fù)合選擇;而 ReplicationController 只支持 單選操作。

什么意思呢?

假設(shè)下面有下面兩個不同機(jī)器上的 Node 結(jié)點,如何知道它們的 pod 其實都是相同的呢?答案是通過標(biāo)簽。

給每個 pod 打上標(biāo)簽 ( key=value 格式,如下圖中的 app=web, release=stable,這有兩個選項,相同的pod副本的標(biāo)簽是一樣的),于是副本控制器可以通過標(biāo)簽選擇器 seletor 去選擇一組相關(guān)的服務(wù)。一旦 selector 和 pod 的標(biāo)簽匹配上了,就表明這個 pod 是當(dāng)前這個副本控制器控制的,表明了副本控制器和 pod 的所屬關(guān)系。如下圖中 seletor 指定了 app = web 和 release=stable 是復(fù)合選擇,要用 ReplicaSet 才能實現(xiàn)若用 ReplicationController 的話只能選擇一個,如只選擇匹配app=web標(biāo)簽。這樣下面的 3 個 pod 就歸這個副本控制器管。

可見 ReplicaSet 功能更齊全,所以在新版的 k8s 中,建議使用 ReplicaSet 作為副本控制器,不再使用 ReplicationController。

3. Deployment 部署對象

3.1 滾動更新

ReplicaSet 副本控制器可以永久保持 pod 副本的數(shù)量。但是項目的需求在不斷的迭代、更新,項目在不斷發(fā)版。那如何做到服務(wù)更新?難道把服務(wù)停掉再把新版本部署上去嗎?當(dāng)然不是,答案是用滾動更新。就是重新創(chuàng)建一個 pod (v2版本) 來代替 之前的 pod (v1版本)。

那是如何滾動更新的呢?涉及到下面要講到的部署模型。

3.2 部署模型

單獨的 ReplicaSet 是不支持滾動更新的,Deployment 對象支持滾動更新,通常和 ReplicaSet 一起使用。

需要滾動更新時的步驟:

Deployment 建立新的 Replicaset

Replicaset 重新建立新的 pod

所以它們之間是有層次關(guān)系的,Deployment 管 Replicaset,Replicaset 維護(hù) pod。在更新時刪除的是舊的 pod,老版本的 ReplicaSet 是不會刪除的,所以在需要時還可以回退以前的狀態(tài)。

4. StatefulSet 部署有狀態(tài)服務(wù)

4.1 引入定義

思考:如果 MySQL(有狀態(tài)服務(wù)) 使用容器化部署,會存在什么問題?

容器都是有生命周期的,一旦宕機(jī)數(shù)據(jù)就很可能丟失

pod 也有生命周期的,用 pod 部署時把 pod 集群副本重啟以后也可能會出現(xiàn)數(shù)據(jù)丟失

因此對 k8s 來說,不能使用 Deployment 部署有狀態(tài)的服務(wù)。通常情況下,Deployment 被用來部署無狀態(tài)服務(wù)。然后 StatefulSet 就是為了解決有狀態(tài)服務(wù)使用容器化部署的一個問題。

4.2 如何理解狀態(tài)服務(wù)

有狀態(tài)服務(wù)

有實時的數(shù)據(jù)需要存儲

在有狀態(tài)服務(wù)集群中,如果把某一個服務(wù)抽離出來,一段時間后再加入回集群網(wǎng)絡(luò),此后集群網(wǎng)絡(luò)會無法使用

無狀態(tài)服務(wù)

沒有實時的數(shù)據(jù)需要存儲

在無狀態(tài)服務(wù)集群中,如果把某一個服務(wù)抽離出去,一段時間后再加入回集群網(wǎng)絡(luò),對集群服務(wù)無任何影響,因為它們不需要做交互,不需要數(shù)據(jù)同步等等。

4.3 部署模型

StatefulSet 的部署模型和 Deployment 的很相似。比如下圖,借助 PVC(與存儲有關(guān)) 文件系統(tǒng)來存儲的實時數(shù)據(jù),因此下圖就是一個有狀態(tài)服務(wù)的部署。在 pod 宕機(jī)之后重新建立 pod 時,StatefulSet 通過保證 hostname 不發(fā)生變化來保證數(shù)據(jù)不丟失。因此 pod 就可以通過 hostname 來關(guān)聯(lián)(找到) 之前存儲的數(shù)據(jù)。

原文鏈接:https://blog.csdn.net/qq_43280818/article/details/106910187

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 核心板
    +關(guān)注

    關(guān)注

    5

    文章

    1029

    瀏覽量

    29955
  • nginx
    +關(guān)注

    關(guān)注

    0

    文章

    154

    瀏覽量

    12235

原文標(biāo)題:Kubernetes 核心組件原理梳理

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    徹底移除Calico網(wǎng)絡(luò)插件

    0.前言 參考文檔:https://github.com/containernetworking/cni Pod網(wǎng)絡(luò)插件,為了實現(xiàn)Pod網(wǎng)絡(luò)而需要的插件、組件。由于Kubernetes
    的頭像 發(fā)表于 01-23 17:26 ?156次閱讀
    徹底移除Calico網(wǎng)絡(luò)插件

    Kubernetes:構(gòu)建高效的容器化應(yīng)用平臺

    init初始化集群,按照提示配置kubeconfig文件,它包含集群連接信息。從節(jié)點通過kubeadm join命令加入集群。 PodKubernetes 中最小的可部署單元,一個 Pod 可以包含一
    的頭像 發(fā)表于 01-23 15:22 ?84次閱讀

    使用 Flexus 云服務(wù)器 X 實例部署 Kubernetes 圖形化管理平臺

    Kubernetes 作為當(dāng)今最流行的容器編排平臺,隨著云計算、微服務(wù)架構(gòu)和 DevOps 文化的普及,Kubernetes 在自動化部署、擴(kuò)展和管理容器化應(yīng)用程序方面扮演著越來越重要的角色。未來
    的頭像 發(fā)表于 01-21 16:14 ?101次閱讀
    使用 Flexus 云服務(wù)器 X 實例部署 <b class='flag-5'>Kubernetes</b> 圖形化管理平臺

    Kubernetes的CNI網(wǎng)絡(luò)插件之flannel

    Kubernetes設(shè)計了網(wǎng)絡(luò)模型,但卻將它的實現(xiàn)講給了網(wǎng)絡(luò)插件,CNI網(wǎng)絡(luò)插件最重要的功能就是實現(xiàn)Pod資源能夠跨主機(jī)通信。
    的頭像 發(fā)表于 01-02 09:43 ?294次閱讀

    重新分配pod節(jié)點

    1、軟件包下載 去github上下載較新的Kubernetes軟件包https://github.com/ ? ? ? ? ? 2、升級說明 升級包括master節(jié)點升級和node節(jié)點的升級,本章
    的頭像 發(fā)表于 01-02 09:17 ?132次閱讀
    重新分配<b class='flag-5'>pod</b>節(jié)點

    艾體寶與Kubernetes原生數(shù)據(jù)平臺AppsCode達(dá)成合作

    虹科姐妹公司艾體寶宣布與Kubernetes 原生數(shù)據(jù)平臺 AppsCode達(dá)成正式合作,致力于將其核心產(chǎn)品KubeDB引入中國市場,為企業(yè)提供專業(yè)、高效的云原生數(shù)據(jù)庫管理解決方案。
    的頭像 發(fā)表于 12-16 15:07 ?310次閱讀

    Kubernetes集群搭建容器云需要幾臺服務(wù)器?

    Kubernetes集群搭建容器云需要幾臺服務(wù)器?至少需要4臺服務(wù)器。搭建容器云所需的服務(wù)器數(shù)量以及具體的搭建步驟,會根據(jù)所選用的技術(shù)棧、業(yè)務(wù)規(guī)模、架構(gòu)設(shè)計以及安全需求等因素而有所不同。以下是一個基于Kubernetes集群的容器云搭建的概述:
    的頭像 發(fā)表于 10-21 10:06 ?197次閱讀

    基于DPU與SmartNIC的K8s Service解決方案

    1.? 方案背景 1.1. Kubernetes Service介紹 Kubernetes Service是Kubernetes中的一個核心概念,它定義了一種抽象,用于表示一組提供相同
    的頭像 發(fā)表于 09-02 17:01 ?1024次閱讀
    基于DPU與SmartNIC的K8s Service解決方案

    使用Velero備份Kubernetes集群

    Velero 是 heptio 團(tuán)隊(被 VMWare 收購)開源的 Kubernetes 集群備份、遷移工具。
    的頭像 發(fā)表于 08-05 15:43 ?402次閱讀
    使用Velero備份<b class='flag-5'>Kubernetes</b>集群

    表面貼裝 TCXO 汽車電子用 DSK321STD:卓越性能,穩(wěn)定可靠的汽車電子核心組件

    表面貼裝 TCXO(汽車電子用)DSK321STD:卓越性能,穩(wěn)定可靠的汽車電子核心組件
    的頭像 發(fā)表于 08-01 10:22 ?1118次閱讀
    表面貼裝 TCXO 汽車電子用 DSK321STD:卓越性能,穩(wěn)定可靠的汽車電子<b class='flag-5'>核心</b><b class='flag-5'>組件</b>

    如何使用Kubeadm命令在PetaExpress Ubuntu系統(tǒng)上安裝Kubernetes集群

    Kubernetes,通常縮寫為K8s,是一個開源的容器編排平臺,旨在自動化容器化應(yīng)用的部署、擴(kuò)展和管理。有了Kubernetes,您可以輕松地部署、更新和擴(kuò)展應(yīng)用,而無需擔(dān)心底層基礎(chǔ)設(shè)施。
    的頭像 發(fā)表于 07-15 13:31 ?914次閱讀
    如何使用Kubeadm命令在PetaExpress Ubuntu系統(tǒng)上安裝<b class='flag-5'>Kubernetes</b>集群

    工業(yè)自動化控制系統(tǒng)的核心組件不包括什么

    工業(yè)自動化控制系統(tǒng)是現(xiàn)代工業(yè)生產(chǎn)中不可或缺的一部分,它通過計算機(jī)、傳感器、執(zhí)行器等設(shè)備實現(xiàn)對生產(chǎn)過程的自動控制和管理。在工業(yè)自動化控制系統(tǒng)中,有許多核心組件,它們共同構(gòu)成了系統(tǒng)的骨架和靈魂。然而
    的頭像 發(fā)表于 06-11 10:57 ?671次閱讀

    碩博電子礦用卡車電控系統(tǒng)的核心組件的優(yōu)勢

    卡車電控系統(tǒng)的核心組件主要包括SPC-SFMC-X3632A控制器與SPC-SDIO-S1212 IO模塊,二者共同構(gòu)成了系統(tǒng)的“智慧大腦”與“信息樞紐”。 SPC-SFMC-X3632A控制器,作為電控系統(tǒng)的核心處理器,具備強(qiáng)
    的頭像 發(fā)表于 04-24 09:52 ?418次閱讀

    半導(dǎo)體品控:打造穩(wěn)定、可靠的電子核心組件

    半導(dǎo)體,作為現(xiàn)代電子工業(yè)的核心組件,其品質(zhì)控制至關(guān)重要。半導(dǎo)體的品控不僅關(guān)乎產(chǎn)品的性能穩(wěn)定,還直接影響著下游電子產(chǎn)品的可靠性和使用壽命。本文將詳細(xì)介紹半導(dǎo)體品控的各個環(huán)節(jié),以及在整個半導(dǎo)體產(chǎn)業(yè)鏈中的重要性。
    的頭像 發(fā)表于 04-18 09:51 ?843次閱讀
    半導(dǎo)體品控:打造穩(wěn)定、可靠的電子<b class='flag-5'>核心</b><b class='flag-5'>組件</b>

    光模塊:組件、分類及應(yīng)用

    光模塊是現(xiàn)代通信系統(tǒng)中的核心組件,負(fù)責(zé)實現(xiàn)光信號的傳輸和轉(zhuǎn)換。隨著通信技術(shù)的發(fā)展,光模塊在數(shù)據(jù)傳輸領(lǐng)域的應(yīng)用越來越廣泛,其性能和穩(wěn)定性對于整個通信系統(tǒng)的傳輸質(zhì)量和可靠性具有至關(guān)重要的作用。本文將對光模塊的組件、分類及應(yīng)用進(jìn)行詳細(xì)
    的頭像 發(fā)表于 03-18 11:23 ?1506次閱讀
    澳门百家乐官网真人版| 百家乐棋牌游| 蓝盾百家乐的玩法技巧和规则| 沙龙百家乐官网怎申请| 百家乐一般的庄闲比例是多少| 百家乐官网太阳城球讯网| 大赢家百家乐的玩法技巧和规则| 摩纳哥百家乐官网娱乐城| 百家乐英皇赌场娱乐网规则| 筹码币百家乐官网麻将| 东京太阳城王子酒店| 马牌百家乐官网的玩法技巧和规则 | 澳门百家乐大家乐眼| 百家乐官网娱乐城有几家| 木棉百家乐的玩法技巧和规则 | 塑料百家乐筹码| 百家乐官网赢足球博彩皇冠| 全讯网abckkk.com| 百家乐官网园试玩| 百家乐官网视频麻将| 博发百家乐的玩法技巧和规则| 澳门百家乐官网骗人| 德州扑克 教学| 太阳城百家乐赌博害人| 玩百家乐官网保时捷娱乐城| 大发888娱乐城送58| 蓝盾百家乐平台租用| 百家乐官网官方游戏| 棋牌娱乐平台| 百家乐玄机| 乐天堂百家乐官网娱乐场| 缅甸黄金赌场| 百合百家乐的玩法技巧和规则| 网上赌百家乐官网的玩法技巧和规则| 网球比赛直播| 神话百家乐的玩法技巧和规则 | 昆明百家乐官网装修装潢有限公司| 大发888国际赌场娱乐网规则 | 百家乐平注常赢玩法技巧| 玩百家乐官网怎么能赢呢| 百家乐官网客户端LV|