简写为RC,能够使用rc做为kubectl工具的快速管理对象,用来管理多个Pod资源对象,不止针对一个pod对象。若是pod数量过多,则删除多的,若是pod数量减小,有pod不健康或者宕掉时,会从新启动一个pod,保证pod的总数不变,主要用来部署、升级Podphp
使用RC管理Podnginx
apiVersion: v1 kind: ReplicationController metadata: name: nginx labels: app: nginx spec: replicat: 3 #设置副本数量 selector: app: nginx #选择管理的Pod 标签 template: metadata: labels: app: nginx #必须和selector选择的标签一致 spec: containers: - name: nginx image: nginx imagePullPolicy: IfNotPresent ports: - name: http containerPort: 80
相比于Pod资源对象的部署文件模板,rc几乎保持一致,须要apiVersion,kind,metadata,spec,不一样在于rc中多了spec.template字段,spec.template下是Pod的模板,和Pod资源对象的格式同样。redis
简写为rs,下一代RC,功能基本同样,不一样之处在于,RC只支持等式标签选择selector(env=dev或environment!=qa),RS还支持基于集合的selector(version in (v1.0,v2.0))api
apiVersion: apps/v1 kind: ReplicaSet metadata: name: frontend labels: app: guestbook tier: frontend spec: # modify replicas according to your case replicas: 3 selector: matchLabels: tier: frontend template: metadata: labels: tier: frontend spec: containers: - name: php-redis image: gcr.io/google_samples/gb-frontend:v3
总结下关于RC
/RS
的一些特性和做用吧:app
RC
实现的Pod
的建立和副本数量的控制RC
中包含一个完整的Pod
定义模块(不包含apiversion
和kind
)RC
是经过label selector
机制来实现对Pod
副本的控制的RC
里面的Pod
副本数量,能够实现Pod
的扩缩容功能RC
里面的Pod
模板中镜像版本,能够实现Pod
的滚动升级功能(可是不支持一键回滚,须要用相同的方法去修改镜像地址)