RS与RC与Deployment关联

RC主要的作用就是用来确保容器应用的副本数始终保持在用户定义的副本数,即如果容器异常退出,会自动创建新的pod来替代;而如果异常多出来的容器也会自动回收
kubernetes官方建议使用RS替代RC进行部署,RS和RC没有本质的不同,只是名字不一样,并且RS支持集合式的selector

RS示例

apiVersion: extensions/v1beta1
kind: ReplicaSet
metadata:
  name: frontend
spec:
  replicas: 2
  selector:    //选择标签
    matchLabels:    //匹配标签
      app: frontend   //标签名
  template:    //模板
    metadata:
      labels:
        app: frontend
    spec:
      containers:
      - name: nginx
        image: nginx
        env:   //注入环境变量
        - name: GET_HOST_FROM
          value: dns
        ports:
        - containerPort: 80
查看标签
[root@master yaml]# kubectl get po --show-labels
NAME             READY   STATUS    RESTARTS   AGE    LABELS
frontend-8csz8   1/1     Running   0          106s   app=frontend
frontend-w2twt   1/1     Running   0          106s   app=frontend

RS与Deployment的关联

RS与Deployment的关联图.png

Deployment

Deployment为pod和ReplicaSet提供了一个声明式定义方法,用来替代以前的RC来方便的管理应用。典型的应用场景包括;

1,定义Deployment来创建pod和ReplicaSet
2,滚动升级和回滚应用
3,扩容和缩容
4,暂停和继续Deployment

示例 部署一个nginx应用

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2
  selector:
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80

附加

kubectl create -f deployment.yaml --record
--record可以记录命令 可以很方便查看revision的变化

扩容

kubectl scale deployment 控制器名 --replicas 10

如果集群支持horizontal pod autoscaling的话,还可以为deployment设置自动扩展

kubectl autoscale deployment 控制器名 --min=10 --max=15 --cpu-percent=80

更新

kubectl set image deployment/控制器名 镜像名=镜像名:版本号

暂停更新

kubectl rollout pause deployment/控制器名 

回滚

kubectl rollout undo deployment/控制器名

查看回滚状态

kubectl rollout status deployment/控制器名

指定回滚到某个版本

kubectl rollout undo deployment/控制器名 --to-revision=版本号

在线编辑yaml文件

[root@master yaml]#  kubectl edit deployment   //应用yaml文件
[root@master yaml]#  kubectl edit  svc/应用名    //应用svc的yaml文件

查看deployment保存的历史纪录

[root@master yaml]#  kubectl rollout history deployment 服务名
deployment.extensions/web 
REVISION  CHANGE-CAUSE
2         <none>
3         <none>

Deployment更新策略

Deployment可以保证在升级时只有一定数量的pod是down的,默认的他会确保至少有比期望的pod数量上一个是up状态(最多一个不可用)
Deployment同时也可以确保只创建出超时期望数量的一定数量的Pod,默认的他会确保最多比期望的pod数量多一个的pod是up状态(最多一个surge)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。