Docker学习第十天——k8s之ReplicaSet及Deployment

一、ReplicaSet

        ReplicaSet,即副本控制器,简称rs,主要作用是控制由其管理的pod,使pod副本的数量始终维持在预设的个数,保证一定数量的Pod能够在集群中正常运行,它会持续监听这些Pod的运行状态,在Pod发生故障时重启pod,pod数量减少时重新运行新的 Pod副本。

        官方不推荐,使用Deployment代替。

二、Deployment

1、Deployment概述

1.1 介绍

• 除了能够调用ReplicaSet之外还可以提供滚动升级及回滚的功能。

• deployment是一个三级结构,deployment管理replicaset,replicaset管理pod,用deployment创建一个pod。

1.2 功能

• 创建ReplicaSet和Pod

• 滚动升级(不停止旧服务的状态下升级)和回滚应用(将应用回滚到之前的版本)

• 平滑地扩容和缩容

• 暂停和继续Deployment

1.3 简单案例

apiVersion: apps/v1
kind: Deployment
metadata:
 name: mydm
spec:
 replicas: 3       #副本数:3
 selector:         #标签选择器,选择其关联的pod
  matchLabels:
   app: myapp-blue #匹配模板中label
 template:         #定义的pod模板
   metadata:
     labels:
      app: myapp-blue
     spec:
       containers:
       - name: myapp-blue
         image: busybox:1.28
         imagePullPolicy: IfNotPresent
         ports:
         - containerPort: 80

1.4 查看命令

• 查看Deployment:kubectl get deploy

• 查看RaplicaSet:kubectl get rs

1.5 扩缩容

修改对应的yaml文件中的replicas的数量

1.6 滚动更新

• 修改对应的yaml文件中的image信息

• kubectl edit deploy deployname

1.7 回滚

• 查看历史版本:kubectl rollout history deployment name

• 回滚操作:kubectl rollout undo deployment name --to-revision=1

1.8 自定义更新策略

• 编写位置:在spec→strategy内,为rollingUpdate

spec:
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1

• maxUnavailable:和期望的副本数比,不可用副本数最大比例(或最大值),这个值越小,越能保证服务稳定,更新越平滑;

• maxSurge:和期望的副本数比,超过期望副本数最大比例(或最大值),这个值调的越大,副本更新速度越快。

• 按数量更新:

        ◇ maxUnavailable: [0, 副本数]

        ◇ maxSurge: [0, 副本数]

        ◇ 两者不能同时为0。

• 按比例更新:

        ◇ maxUnavailable: [0%, 100%] 向下取整,比如10个副本,5%的话==0.5个,但计算按照0个;

        ◇ maxSurge: [0%, 100%] 向上取整

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值