码迷,mamicode.com
首页 > 其他好文 > 详细

K8S 之 创建ReplicationController控制器

时间:2020-04-07 20:32:21      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:label   选择   ports   多个   一个   metadata   root   对象   ati   

一、使用ReplicationController的好处

1、确保一个pod(或多个pod副本)持续运行,方法是在现有pod丢失时启动一个新的pod
2、集群节点发生故障时,它将为故障节点上运行的所有pod(即受ReplicationController控制的节点上的那些pod)创建替代副本。
3、它能轻松实现pod的水平伸缩,手动和自动都可以。

备注:ReplicationController 最终将被弃用,ReplicaSet代替,功能完全相同,而你通常不会直接创建它们,而是在创建更高层级的Deployment资源时创建。

apiVersion: v1
kind: ReplicationController
metadata:
  name: kubia-rc          #ReplicationController(RC)的名字
  namespace: test
spec:
  replicas: 3             #pod实例的目标数量
  selector:               #pod选择器决定了RC的操作对象
    app: kubia
  template:               #创建新POD所用的pod模板
    metadata:
      labels:
        app: kubia
    spec:
      containers:
        - name: kubia
          image: luksa/kubia
          ports:
            - containerPort: 8080
[root@test-nodes1 k8s-yaml-file]# kubectl get all -n test
NAME                 READY   STATUS    RESTARTS   AGE
pod/kubia-rc-d2l6v   1/1     Running   0          2m11s
pod/kubia-rc-fmzjs   1/1     Running   0          2m11s
pod/kubia-rc-zdd28   1/1     Running   0          56s

NAME                             DESIRED   CURRENT   READY   AGE
replicationcontroller/kubia-rc   3         3         3       2m11s

二、水平缩放pod

[root@test-nodes1 k8s-yaml-file]# kubectl scale rc kubia-rc --replicas=2 -n test
replicationcontroller/kubia-rc scaled
[root@test-nodes1 k8s-yaml-file]# kubectl get all -n test
NAME                 READY   STATUS        RESTARTS   AGE
pod/kubia-rc-d2l6v   1/1     Running       0          23m
pod/kubia-rc-fmzjs   1/1     Running       0          23m
pod/kubia-rc-zdd28   1/1     Terminating   0          22m      #已经终止

NAME                             DESIRED   CURRENT   READY   AGE
replicationcontroller/kubia-rc   2         2         2       23m

或者可使用
[root@test-nodes1 k8s-yaml-file]# kubectl edit rc kubia-rc

三、创建ReplicaSet

apiVersion: apps/v1beta2       #不是v1版本API的一部分,但属于apps API组的v1beta2版本
kind: ReplicaSet
metadata:
  name: kubia-rc          #ReplicationController(RC)的名字
  namespace: test
spec:
  replicas: 3             #pod实例的目标数量
  selector: 
    matchLabels:          #这里使用了更简单的matchLabels选择器(只能用这个)
      app: kubia
  template:               #创建新POD所用的pod模板
    metadata:
      labels:
        app: kubia
    spec:
      containers:
        - name: kubia
          image: luksa/kubia
          ports:
            - containerPort: 8080

K8S 之 创建ReplicationController控制器

标签:label   选择   ports   多个   一个   metadata   root   对象   ati   

原文地址:https://blog.51cto.com/12965094/2485213

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!