美文网首页K8s
k8s-Pod控制器之ReplicaSet

k8s-Pod控制器之ReplicaSet

作者: 会倒立的香飘飘 | 来源:发表于2021-03-05 09:44 被阅读0次

Pod控制器之ReplicaSet

简介:
说到ReplicaSet对象,得先说说ReplicationController(简称为RC)。在旧版本的Kubernetes中,只有ReplicationController对象。它的主要作用是确保Pod以你指定的副本数运行,即如果有容器异常退出,会自动创建新的 Pod 来替代;而异常多出来的容器也会自动回收。可以说,通过ReplicationController,Kubernetes实现了集群的高可用性。
在新版本的 Kubernetes 中建议使用 ReplicaSet(简称为RS )来取代 ReplicationController。ReplicaSet 跟 ReplicationController 没有本质的不同,只是名字不一样,并且 ReplicaSet 支持集合式的 selector(ReplicationController 仅支持等式)。
虽然 ReplicaSet 也可以独立使用,但建议使用 Deployment 来自动管理 ReplicaSet,这样就无需担心跟其他机制的不兼容问题(比如 ReplicaSet 不支持 rolling-update 但 Deployment 支持),并且Deployment还支持版本记录、回滚、暂停升级等高级特性

创建一个ReplicaSet

vim rs.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: myapp
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
      app: myapp 
      release: cancay
  template:
    metadata:
      name: myapp
      labels:
        app: myapp
        release: cancay
    spec:
      containers:
      - name: myapp
        image: ikubernetes/myapp:v1
        imagePullPolicy: IfNotPresent
        ports:
        - name: http
          containerPort: 80

创建rs

kubectl apply -f rs.yaml 

查看状态:

[root@k8s-master daem]# kubectl get rs
NAME    DESIRED   CURRENT   READY   AGE
myapp   2         2         2       2m36s
[root@k8s-master daem]# kubectl get pods
NAME                     READY   STATUS    RESTARTS   AGE
liveness-httpget         1/1     Running   1          2d1h
myapp-84lr8              1/1     Running   0          3m7s
myapp-tpthp              1/1     Running   0          3m7s
poststart-pod            1/1     Running   1          100m
readiness-httpget-pods   1/1     Running   0          2d

ReplicaSet是具有高可用的


image.png

ReplicaSet的扩缩容

扩容


image.png

使用kubectl edit命令在线修改 缩容也是一样
也支持更新升级(也就是更改容器镜像的版本)但是使用edit命令去更改镜像版本过后实际上线上的镜像是不会去重建的,只有删除一个pod重建后才是更新的版本,但是需要人工参与


image.png

相关文章

网友评论

    本文标题:k8s-Pod控制器之ReplicaSet

    本文链接:https://www.haomeiwen.com/subject/mjvyfltx.html