标签:bec 高级 自动 set ice ref div type 模式
参考:https://www.jianshu.com/p/fd8d8d51741e
https://kubernetes.io/zh/docs/concepts/workloads/controllers/replicaset/
说到ReplicaSet对象,得先说说ReplicationController(简称为RC)。在旧版本的Kubernetes中,只有ReplicationController对象。它的主要作用是确保Pod以你指定的副本数运行,即如果有容器异常退出,会自动创建新的 Pod 来替代;而异常多出来的容器也会自动回收。可以说,通过ReplicationController,Kubernetes实现了集群的高可用性。
在新版本的 Kubernetes 中建议使用 ReplicaSet(简称为RS )来取代 ReplicationController。ReplicaSet 跟 ReplicationController 没有本质的不同,只是名字不一样,并且 ReplicaSet 支持集合式的 selector(ReplicationController 仅支持等式)。
ReplicationController和Pod一样,都是Kubernetes中的对象。通过yaml或json描述文件创建一个ReplicationController。一个简单的ReplicationController如下
# cat ReplicationController.yaml apiVersion: v1 kind: ReplicationController metadata: name: nginx spec: replicas: 3 selector: app: nginx template: metadata: name: nginx labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80
下面简要解释一下上述ReplicationController描述文件中的关键点:
上面的RC通过kubectl apply
命令创建成功后,Kubernetes会在所有可用的Node上,新建三个Pod。每个Pod都有一个app: nginx的label,并且每个Pod中都运行一个nginx容器。一旦其中某个Pod发生故障停止运行了,Controller Manager都能够及时发现,然后根据当前RC定义,创建出一个新的Pod,从而使包含label:app: nginx的Pod的运行副本数始终为3。
创建ReplicationController
kubectl apply -f ReplicationController.yaml
查看创建的RC和Pod
# kubectl get ReplicationController NAME DESIRED CURRENT READY AGE nginx 3 3 3 25m [root@localhost replicaset]# kubectl get pod NAME READY STATUS RESTARTS AGE db-0 1/1 Running 1 3d nfs-client-provisioner-7665588bd7-5ll74 1/1 Running 1 3d nginx-442b2 1/1 Running 0 26m nginx-5pnr9 1/1 Running 0 26m nginx-dkjjq 1/1 Running 0 26m redis 1/1 Running 0 6h49m
为该RC创建svc
# cat svc.yaml apiVersion: v1 kind: Service metadata: name: nginx labels: app: nginx spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: app: nginx type: NodePort
解释
可以使用命名生成此yaml文件
kubectl expose rc nginx --port=80 --target-port=80 --type=NodePort --dry-run -o yaml>svc.yaml
应用
kubectl apply -f svc.yaml
查看
可以在web页面通过nodeIP加端口访问nginx
标签:bec 高级 自动 set ice ref div type 模式
原文地址:https://www.cnblogs.com/minseo/p/12525799.html