03-Pod控制器

Pod控制器


pod控制器分类:

  1. ReplicationController:比较原始的pod控制器,已经被废弃(生产少用)
  2. ReplicaSet:保证副本数量一直维持在期望值(生产少用)
  3. Deployment:用于部署无状态服务(生产常用)
  4. StatefulSet:用户部署有状态服务(生产常用)
  5. DaemonSet :守护进程服务,所有节点或匹配的节点上都部署一个Pod(生产常用)
  6. Job:用于执行一次性任务
  7. Cronjob:控制周期性任务控制
  8. HPA:根据集群负载自动扩缩容

以下主要讲解Deployment、StatefulSet、DaemonSet 、HPA

1. Deployment

# 1.更新
kubectl set image deploy/nginx nginx=nginx:1.15.2 --record
kubectl set image deploy/nginx nginx=nginx:1.15.3 --record
kubectl set image deploy/nginx nginx=nginx:1.15.4 --record

## 支持两种更新策略
### (1) Recreate删除重建
### (2) RollingUpdate回滚升级(默认方式)

# 2.回滚
## 2.1 查看历史记录
kubectl rollout history deploy nginx

## 2.2 回滚到上一个版本
kubectl rollout undo deploy nginx

## 2.3 查看指定版本详细信息
kubectl rollout history deploy nginx --revision=5

## 2.4 回滚到指定版本
kubectl rollout undo deploy nginx --to-revision=5

## 2.5 查看状态
kubectl get deploy nginx -yaml

# 3.扩缩容
kubetcl scale --replicas=3 delpoy nginx

# 4. 更新暂停和恢复
## 4.1 暂停
kubectl rollout pause delpoy nginx

## 4.2 恢复
kubectl rollout resume delpoy nginx

2. StatefulSet

# 1.扩缩容(扩缩容顺序)
kubetcl scale --replicas=3 sts web 

# 2.更新策略

# 3. 灰度发布
...
updateStrategy:
  type: RollingUpdate
  rollingUpdate:
    partition: 2 # id小于2的更新
...

# 4. 级联和非级联删除
## 4.1 级联删除: 删除sts时同时删除Pod(默认)
kubectl delete sts web

## 4.1 非级联删除: 删除sts时不删除Pod
kubectl delete sts web --cascade=false

3. DaemonSet

# 更新和回滚
kubectl set image ds nginx nginx=nginx:1.15.2 --record
# 更新策略一般设置为
updateStrategy:
  type: OnDelete

4. HPA

# 根据pod的CPU使用率超过20%自动扩缩容,最小副本数2,最大副本数5
kubectl autoscale deploy demo-nginx --cpu-percent=20 --min=2 --max=5
上一篇:kubernetes集群系列资料12--ingress介绍


下一篇:Ansible