K8S 之 创建ReplicationController控制器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K8S 之 创建ReplicationController控制器相关的知识,希望对你有一定的参考价值。

一、使用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控制器的主要内容,如果未能解决你的问题,请参考以下文章

k8s 之 service ip

K8s数据持久化之自动创建PV

K8S 之 创建ReplicationController控制器

Kubernetes(k8s)集群安全机制之访问控制

十二,k8s集群访问控制之RBAC

K8S实践Ⅱ(K8S之Pod)