k8s-rc


Replication Controller(RC)

Replication Controller是Kubernetes系統中的核心概念,用於定義Pod副本的數量。

在Master內,Controller Manager進程通過RC的定義來完成Pod的創建、監控、啟停等操作。

根據Replication Controller的定義,Kubernetes能夠確保在任意時刻都能運行用於指定的Pod“副本”(Replica)數量。

如果有過多的Pod副本在運行,系統就會停掉一些Pod;
如果運行的Pod副本數量太少,系統就會再啟動一些Pod,
總之,通過RC的定義,Kubernetes總是保證集群中運行着用戶期望的副本數量。

同時,Kubernetes會對全部運行的Pod進行監控和管理,如果有需要(例如某個Pod停止運行),就會將Pod重啟命令提交給Node上的某個程序來完成(如Kubelet或Docker)。

通過對Replication Controller的使用,Kubernetes實現了應用集群的高可用性,並大大減少了系統管理員在傳統IT環境中需要完成的許多手工運維工作(如主機監控腳本、應用監控腳本、故障恢復腳本等)。


對Replication Controller的定義使用Yaml或Json格式的配置文件來完成。

以redis-slave為例,在配置文件中通過spec.template定義Pod的屬性(這部分定義與Pod的定義是一致的),設置spec.replicas=2來定義Pod副本的數量。

apiVersion: v1
kind: ReplicationController
metadata:
name: redis-slave
labels: redis-slave
name: redis-slave
spec:
replicas: 2
selector:
name: redis-slave
template:
metadata:
labels:
name: redis-slave
spec:
container:
- name: slave
image: kubeguide/guestbook-redis-slave
env:
- name: GET_HOSTS_FROM
value: env
ports:
- containerPort: 6379

通常,Kubernetes集群中不止一個Node,假設一個集群有3個Node,根據RC的定義,系統將可能在其中的兩個Node上創建Pod。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM