新聞中心
Kubernetes 復制控制器如何工作
作者:Mike Calizo 2021-11-25 14:44:51
云計算 復制控制器負責管理吊艙的生命周期并確保在任何時候運行著所需的指定數(shù)量的吊艙。

復制控制器負責管理吊艙的生命周期并確保在任何時候運行著所需的指定數(shù)量的吊艙。
你有沒有想過,誰負責監(jiān)督和管理 Kubernetes 集群內運行的“吊艙pod”的確切數(shù)量?Kubernetes 可以通過多種方式做到這一點,但一個常見的方法是使用 “復制控制器ReplicationController(RC)”。RC 負責管理吊艙的生命周期,并確保在任何時候運行著所需的指定數(shù)量的吊艙。但另一方面,它不負責高級的集群能力,如執(zhí)行自動擴展、準備度和活躍探測以及其他高級的復制能力。Kubernetes 集群中的其他組件可以更好地執(zhí)行這些功能。
簡而言之,RC 的職責有限,通常用于不需要復雜邏輯就能達到某些要求的具體實現(xiàn)(例如,確保所需的吊艙數(shù)量總是與指定的數(shù)量相符)。如果超過了所需的數(shù)量,RC 會刪除多余的,并確保即使在節(jié)點故障或吊艙終止的情況下,也有相同數(shù)量的存在。
簡單的事情不需要復雜的解決方案,對我來說,這就是 RC 如何被使用的一個完美的比喻。
如何創(chuàng)建一個 RC
像大多數(shù) Kubernetes 資源一樣,你可以使用 YAML 或 JSON 格式創(chuàng)建一個 RC,然后將其發(fā)布到 Kubernetes API 端點。
$ kubectl create -f rcexample.yamlreplicationcontroller/rcexample created
現(xiàn)在,我將深入一下 rcexample.yaml 的樣子。
apiVersion: v1kind: ReplicationController → RC 描述符metadata:name: rcexample → 復制控制器名字spec:replicas: 3 → 預期的吊艙數(shù)量selector: → 這個 RC 的吊艙選擇器app: nginxtemplate: → 用于創(chuàng)建新吊艙的模板metadata:labels:app: nginxspec:containers:- name: nginximage: nginx
進一步解釋,這個文件在執(zhí)行時創(chuàng)建了一個名為 rcexample 的 RC,確保三個名為 nginx 的吊艙實例一直在運行。如果一個或所有的 app=nginx 吊艙沒有運行,新的吊艙將根據(jù)定義的吊艙模板創(chuàng)建。
一個 RC 有三個部分:
- 復制品:
3 - 吊艙模板:
app=nginx - 吊艙選擇器:
app=nginx
注意,吊艙模板要與吊艙選擇器相匹配,以防止 RC 一直創(chuàng)建吊艙。如果你創(chuàng)建的 RC 的吊艙選擇器與模板不匹配,Kubernetes API 服務器會給你一個錯誤。
為了驗證 RC rcexample 是否被創(chuàng)建:
$ kubectl get poNAME READY STATUS RESTARTS AGErcexample-53thy 0/1 Running 0 10srcexample-k0xz6 0/1 Running 0 10srcexample-q3vkg 0/1 Running 0 10s
要刪除 RC:
$ kubectl delete rc rcexamplereplicationcontroller "rcexample" deleted
注意,你可以對 RC 中的服務使用 滾動更新 策略,逐個替換吊艙。
其他復制容器的方法
在 Kubernetes 部署中,有多種方法可以實現(xiàn)容器的復制。Kubernetes 成為容器平臺的主要選擇的主要原因之一是復制容器以獲得可靠性、負載平衡和擴展的原生能力。
我在上面展示了你如何輕松地創(chuàng)建一個 RC,以確保在任何時候都有一定數(shù)量的吊艙可用。你可以通過更新副本的數(shù)量來手動擴展吊艙。
另一種可能的方法是通過使用 “復制集ReplicaSet(RS)”來達到復制的目的。
(kind: ReplicaSet)
RS 的功能幾乎與 RC 相同。主要區(qū)別在于,RS 不允許滾動更新策略。
另一種實現(xiàn)復制的方法是通過使用 “部署Deployments”。
(kind: Deployment)
部署是一種更高級的容器復制方法。從功能上講,部署提供了相同的功能,但在需要時可以推出和回滾變化。這種功能之所以能夠實現(xiàn),是因為部署有 “策略類型StrategyType” 規(guī)范來用新的吊艙替換舊的吊艙。你可以定義兩種類型的部署策略:“重新創(chuàng)建Recreate” 和 “滾動更新RollingUpdate”。你可以如下指定部署策略:
StrategyType: RollingUpdate
總結
容器的復制功能是大多數(shù)企業(yè)考慮采用 Kubernetes 的主要原因之一。復制可以讓你達到大多數(shù)關鍵應用程序需要的可靠性和可擴展性,作為生產的最低要求。
了解在 Kubernetes 集群中使用哪些方法來實現(xiàn)復制,對于決定哪種方法最適合你的應用架構考慮非常重要。
網(wǎng)頁標題:Kubernetes 復制控制器如何工作
文章URL:http://www.fisionsoft.com.cn/article/dhjpooh.html


咨詢
建站咨詢
