k8s-ReplicaSet及Deployment
概念集合
Pod里是容器,Pod被ReplicaSet管理, ReplicaSet控制pod的数量;ReplicaSet被Deployment管理, Deployment控制pod应用的升级、回滚,当然也能控制pod的数量。 Service提供一个统一固定入口,负责将前端请求转发给Pod。
ReplicaSet
副本控制器 作用:管理pod副本,保证pod的数量在预设的个数,当pod副本被删除时,会重新创建新的pod副本 官方不推荐,使用Deployment代替
Deployment
作用:
除了能够调佣ReplicaSet之外还可以提供滚动升级及回滚的功能
功能
1、创建ReplicaSet和Pod 2、滚动升级(不停止旧服务的状态下升级)和回滚应用(将应用回滚到之前的版本) 3、平滑地扩容和缩容 4、暂停和继续Deployment
案例
apiVersion: apps/v1 kind: Deployment metadata: name: mydm spec: replicas: 3 selector: matchLabels: app: myapp-blue #匹配模板中label template: metadata: labels: app: myapp-blue spec: containers: - name: myapp-blue image: busybox:1.28 imagePullPolicy: IfNotPresent ports: - containerPort: 80
查看
deplyment kubectl get deploy ------------------------------ raplicaset kubectl get rs
扩缩容
修改对应的yaml文件中的replicas的数量
滚动更新
修改对应的yaml文件中的image信息
回滚
查看历史版本 kubectl rollout history deployment name --------------------------- 回滚操作 kubectl rollout undo deployment name --to-revision=1(name)
自定义更新策略
灰色发布
### maxSurge ### maxUnavailable
类型
按数量
1.maxUnavailable: [0, 副本数] 2. maxSurge: [0, 副本数] 注意:两者不能同时为0。
按比例
maxUnavailable: [0%, 100%] 向下取整,比如10个副本,5%的话==0.5个,但计算按照0个; 2. maxSurge: [0%, 100%] 向上取整,比如10个副本,5%的话==0.5个,但计算按照1个; 注意:两者不能同时为0。
maxUnavailable:和期望的副本数比,不可用副本数最大比例(或最大值),这个值越小,越能保证服务稳定,更新越平滑;
maxSurge:和期望的副本数比,超过期望副本数最大比例(或最大值),这个值调的越大,副本更新速度越快。