亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解ReplicationController及其配置

發布時間:2021-11-24 16:50:51 來源:億速云 閱讀:261 作者:柒染 欄目:云計算

如何理解ReplicationController及其配置,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

在介紹ReplicationController之前,我們先思考一下下圖所示的場景,Kubernetes集群包含2個Node,每個Node上均運行一個同類型的Pod來做負載均衡,如果其中某個Node被管理員強制關機或者Node意外宕機時,會發生什么呢?

如何理解ReplicationController及其配置

由于Pod被調度到某個Node后就與Node綁定,當Node宕機后,Node中的所有Pod也都停止運行。 上圖所示場景中,Node2被關閉后,相應的Pod-2也會停止,Pod-2并不會重新被調度到Node1。

實際應用場景中,維持穩定的Pod副本數是非常必要的,因此Kubernetes引入了ReplicationController

工作機制

ReplicationController用于定義指定Pod的副本數,與創建多個Pod相比,它可以保證Pod意外終止后,集群中仍會有指定個數的Pod副本在運行。運行于kube-controller-manager組件中的ReplicationController控制器(控制器和資源名相同)會監控集群中Pod的副本數:

  • 如果Pod數量已經超出預期,那么ReplicationController將會刪除部分Pod,使Pod數量符合預期。

  • 如果Pod數量低于預期,那么ReplicationController將會創建新的Pod,使用Pod數量符合預期。

ReplicationController控制器會時刻監控Pod的副本數量,一旦發現Pod數量不符合預期(Pod數量過多或過少),均會通過增加或刪除Pod的手段來讓Pod維持在預期數量。

ReplicationController控制器更像是一個Pod監管者,它監管的是整個集群范圍的Pod。在本節開頭中所引用的場景中,如果使用ReplicationController創建兩個Pod的副本,當其中一個Pod意外終止后,新的Pod會被創建出來,從而保證集群中仍有兩個副本在運行,整體工作機制如下圖所示:

如何理解ReplicationController及其配置

通過示意圖可以看到,通過ReplicationController創建兩個Pod情況下,當Node2被關閉后,運行于其上的Pod被重新調度到Node1中運行,集群中總的Pod數始終保持在2個。

ReplicationController配置

一個簡單的ReplicationController資源配置如下所示:

apiVersion: v1
kind: ReplicationController
metadata:
  name: replication-controller-runs-pod
spec:
  replicas: 3
  selector:
    app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.19.0

其中有三個關鍵的項:

  • spec.replicas指定了期望的Pod副本數;

  • spec.selector指定了Selector,ReplicationController正是通過該Selector來查找Pod對象;

  • spec.template指定了Pod的模版,當ReplicationController發現Pod數量低于預期時將使用該模版創建新的Pod。

Pod 模板

Pod模版用于Kubernetes內部動態地創建Pod,它廣泛應用于各種控制器中,包括本節中介紹的ReplicationController,以及后續將要介紹的DeploymentsJobsDaemonSets等等。

從數據結構上看,Pod模版(PodTemplateSpec)可以理解為簡化版的Pod,它只保留了Pod的Metadata和Spec,如下所示:

type PodTemplateSpec struct {
	// Metadata of the pods created from this template.
	// +optional
	metav1.ObjectMeta

	// Spec defines the behavior of a pod.
	// +optional
	Spec PodSpec
}

ReplicationController設計初衷是維持集群中指定類型Pod的副本數,但它只支持等值Selector,不支持基于集合的Selector。為了不違背API兼容性原則,Kubernetes不得已提供了另一種制器ReplicaSet來替換它。

所以,實際場景中幾乎不會用到ReplicationController,雖然它是一個穩定的API。

看完上述內容,你們掌握如何理解ReplicationController及其配置的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吉隆县| 皋兰县| 抚松县| 同德县| 德江县| 响水县| 平利县| 通许县| 吴忠市| 嘉善县| 封开县| 金塔县| 孟连| 二连浩特市| 西安市| 舒兰市| 乐平市| 邵阳市| 延津县| 昭平县| 钦州市| 华安县| 明溪县| 江都市| 无极县| 论坛| 新化县| 兴国县| 班玛县| 梧州市| 平顺县| 从江县| 伊金霍洛旗| 桓仁| 胶州市| 健康| 登封市| 镇远县| 孙吴县| 夏邑县| 凤冈县|