您好,登錄后才能下訂單哦!
這篇文章給大家介紹ReplicaSet是什么意思,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
ReplicaSet
與ReplicationController
類似,它也用于管理一類Pod對象,保證Pod副本數量始終維持在期望值。
一個簡單的ReplicaSet
配置如下所示:
apiVersion: apps/v1 kind: ReplicaSet metadata: name: replicaset-runs-pod spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.19.0
該ReplicaSet
配置確保集群中始終運行3個擁有app: nginx
標簽的Pod副本,如果副本數量不足3個,則使用Pod模版spec.template
創建Pod,如果副本數量多于3個,則刪除多余的副本。
ReplicaSet
配置中最核心的三個要素如下:
spec.selector
用于查找集群中存在的Pod;
spec.replicas
用于指定期望的Pod副本數;
spec.template
用于指定Pod模版,當副本數不足時將使用該模版創建新的Pod。
ReplicationController
和ReplicaSet
都屬于Pod控制器,其設計初衷幾乎完全相同,都是確保指定類型的Pod副本數維持在期望值,ReplicationController
出現時間比ReplicaSet
要早,那么為什么已經有了ReplicationController
的情況下,還要再設計一個ReplicaSet
呢?二者到底有什么區別呢?
二者的主要區別在于標簽選擇器,ReplicaSet
擁有更先進的標簽選擇器,ReplicationController
只支持舊式的標簽選擇器,而ReplicaSet
不僅支持舊式選擇器,還支持新式選擇器。
ReplicationController
支持的選擇器稱為Equality-based
選擇器,即基于等值的選擇器:
Selector map[string]string
ReplicaSet
不僅支持Equality-based
選擇器,還支持Set-based
選擇器,即基于集合的選擇器:
type LabelSelector struct { MatchLabels map[string]string MatchExpressions []LabelSelectorRequirement }
ReplicationController
特性演進到V1時還沒有支持Set-based
選擇器,而Kubernetes又希望推出一款支持Set-based
選擇器的Pod控制器,為了不破壞API兼容性,不得已才推出了ReplicaSet
控制器來替代ReplicationController
。
關于ReplicaSet是什么意思就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。