kubernetes-- 负载

 k8s 多种负载的使用:

  • deployment :无状态服务, 如微服务、提供多副本等功能
  • StatusfulSet:有状态, 如redis提供稳定的存储、网络等功能
  • DeamonSet:守护进程, 比如:日志收集组件,每台机器有且只有一份
  • job/Cronjob:   定时任务, 如指定时间运行

 

 

 Deployment

控制Pod,使Pod拥有多副本,自愈,扩缩容等能力

# 创建pod
kubectl create deployment mytomcat --image=tomcat:8.5.68

 

多副本

kubectl create deployment mytomcat --image=nginx  --replicas=3

查看

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: my-dep
  name: my-dep
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-dep
  template:
    metadata:
      labels:
        app: my-dep
    spec:
      containers:
      - image: nginx
        name: nginx

 

扩缩容能力

# 扩容2台
kubectl scale --replicas=5 deployment/my-dep

# 缩容3台
kubectl scale --replicas=2 deployment/my-dep

 

自愈&故障转移
  • 停机
  • 删除pod
  • 容器崩溃
  • 节点机器宕机
  • .......

 

滚动更新

# 热升级
kubectl set image deployment/my-dep nginx=nginx:1.16.1 --record # 查看状态
kubectl rollout status deployment
/my-dep


# 第二种热升级(修改yaml)
kubectl edit deployment/my-dep

 

版本回退

#历史记录
kubectl rollout history deployment/my-dep


#查看某个历史详情
kubectl rollout history deployment/my-dep --revision=2

#回滚(回到上次)
kubectl rollout undo deployment/my-dep

#回滚(回到指定版本)
kubectl rollout undo deployment/my-dep --to-revision=2

更多:

除了Deployment,k8s还有 StatefulSetDaemonSetJob 等 类型资源。我们都称为 工作负载

有状态应用使用 StatefulSet 部署,无状态应用使用 Deployment 部署

https://kubernetes.io/zh/docs/concepts/workloads/controllers/

 

 

posted @ 2022-06-26 22:48  萤huo虫  阅读(70)  评论(0编辑  收藏  举报