运维锅总详解Kubernetes之Deployment

如何更好的用好Deployment?本文尝试从Deployment的使用、控制器实现原理及使用规范3方面进行阐述。希望对您有所帮助!

一、Kubernetes Deployment使用浅析

Kubernetes Deployment 是一种高级资源对象,用于声明和管理 Pod 和 ReplicaSet。它提供了声明式更新方式,确保系统中的应用程序处于期望的状态。以下是 Kubernetes Deployment 的详细使用说明。

1. 创建 Deployment

示例 YAML 文件

以下是一个简单的 Deployment 示例 YAML 文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

这个 YAML 文件定义了一个名为 nginx-deployment 的 Deployment,对应三个副本的 Pod,每个 Pod 运行一个 Nginx 容器,监听 80 端口。

创建 Deployment

使用 kubectl 命令创建 Deployment:

kubectl apply -f nginx-deployment.yaml

2. 查看 Deployment 状态

查看 Deployment 详情:

kubectl get deployments
kubectl describe deployment nginx-deployment

查看 Pod 状态:

kubectl get pods

3. 更新 Deployment

示例:更新镜像版本

修改 YAML 文件,将 Nginx 镜像版本更新为 1.16.0:

spec:
  template:
    spec:
      containers:
      - name: nginx
        image: nginx:1.16.0

应用更新:

kubectl apply -f nginx-deployment.yaml

查看滚动更新状态:

kubectl rollout status deployment/nginx-deployment

4. 回滚 Deployment

如果更新出现问题,可以回滚到之前的版本:

查看更新历史记录:

kubectl rollout history deployment/nginx-deployment

执行回滚:

kubectl rollout undo deployment/nginx-deployment

回滚到指定版本:

kubectl rollout undo deployment/nginx-deployment --to-revision=2

5. 扩容和缩容 Deployment

扩容

将副本数增加到 5:

kubectl scale deployment nginx-deployment --replicas=5
缩容

将副本数减少到 2:

kubectl scale deployment nginx-deployment --replicas=2

6. 删除 Deployment

删除 Deployment 及其相关的 Pod:

kubectl delete deployment nginx-deployment

7. 高级使用

使用策略

可以在 Deployment 中定义滚动更新策略,以控制更新时的行为:

spec:
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 1
  • maxUnavailable:更新过程中允许不可用的 Pod 数量或百分比。

  • maxSurge:更新过程中允许超出期望 Pod 数量的 Pod 数量或百分比。

设置环境变量

在 Deployment 中可以设置环境变量供容器使用:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

锅总

谢谢支持!

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

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

打赏作者

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

抵扣说明:

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

余额充值