k8s 之 Deployment 介绍与使用流程

Deployment 是最常用的 k8S 工作负载控制器(Workload Controllers),是 k8s 的一个抽象概念,用于更高级层次对象,部署和管理 Pod。

 

Deployment 的主要功能

  • 应用部署
  • 应用升级
  • 应用实例扩容和缩容
  • 发布失败回滚
  • 应用下线

nginx.yaml 文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: chiyi-nginx
  namespace: voip
spec:
  replicas: 3
  selector:
    matchLabels:
      app: chiyi-nginx
  template:
    metadata:
      labels:
        app: chiyi-nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: chiyi-nginx
  namespace: voip
spec:
  selector:
    app: chiyi-nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: NodePort

部署或滚动升级 deployment

kubectl apply -f nginx.yaml

说明:

1. 第一次执行此命令为上线部署 deployment

2. 修改 image 版本号后执行,则为滚动升级 deployment

3. 修改 replicas 副本数数量后执行,则是对 deployment 进行水平扩缩容

免交互升级

kubectl set image deployment chiyi-nginx nginx=nginx:1.21  --record=true -n voip

查看升级过程

kubectl describe deployment chiyi-nginx -n voip
Events:

  Type    Reason             Age    From                   Message

  ----    ------             ----   ----                   -------

  Normal  ScalingReplicaSet  8m3s   deployment-controller  Scaled up replica set chiyi-nginx-5bbf8bff4b to 3

  Normal  ScalingReplicaSet  3m29s  deployment-controller  Scaled up replica set chiyi-nginx-6c985f5867 to 1

  Normal  ScalingReplicaSet  2m53s  deployment-controller  Scaled down replica set chiyi-nginx-5bbf8bff4b to 2

  Normal  ScalingReplicaSet  2m53s  deployment-controller  Scaled up replica set chiyi-nginx-6c985f5867 to 2

  Normal  ScalingReplicaSet  2m5s   deployment-controller  Scaled down replica set chiyi-nginx-5bbf8bff4b to 1

  Normal  ScalingReplicaSet  2m5s   deployment-controller  Scaled up replica set chiyi-nginx-6c985f5867 to 3

  Normal  ScalingReplicaSet  2m4s   deployment-controller  Scaled down replica set chiyi-nginx-5bbf8bff4b to 0

查看历史发布版本

kubectl rollout history deployment chiyi-nginx -n voip

回滚到上一个版本

kubectl rollout undo deployment chiyi-nginx -n voip

回滚历史指定版本

kubectl rollout undo deployment chiyi-nginx --to-revision=1 -n voip

水平扩缩容 (replicas 参数控制 Pod 副本数量)

kubectl scale deployment chiyi-nginx --replicas=10 -n voip

实时查看 pods

kubectl  get pods -n voip -w

项目下线,将资源删除

方法一:

kubectl delete -f nginx.yaml

方法二:

kubectl delete deployment chiyi-nginx -n voip

kubectl delete service chiyi-nginx -n voip

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

协享科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值