跳到主要内容

Deployment管理

简介

Deployment 声明了 Pod 的模板和控制 Pod 的运行策略,适用于部署无状态的应用程序。您可以根据业务需求,对 Deployment 中运行的 Pod 的副本数、调度策略、更新策略等进行声明。

Deployment 控制台操作指引

创建 Deployment

  1. 登录 TKE 控制台

  2. 进入集群管理页面:在左侧导航栏中,单击【集群】。

  3. 选择集群:单击需要创建 Deployment 的集群【ID/名称】,进入待创建 Deployment 的集群管理页面。

  4. 新建 Workload:单击【新建】,进入“新建 Workload”页面。

  5. 设置参数:根据实际需求,设置 Deployment 参数。关键参数信息如下:

    • 工作负载名:自定义。
    • 命名空间:根据实际需求进行选择。
    • 类型:选择 “Deployment(可扩展的部署 Pod)”。
    • 实例内容器:根据实际需求,为 Deployment 的一个 Pod 设置一个或多个不同的容器。
      • 名称:自定义。
      • 镜像:根据实际需求进行选择。
      • 镜像版本:根据实际需求进行填写。
      • CPU/内存限制:可根据 Kubernetes 资源限制进行设置 CPU 和内存的限制范围,提高业务的健壮性。
      • 高级设置:可设置 “工作目录”,“运行命令”,“运行参数”,“容器健康检查”,“特权级”等参数。
    • 实例数量:根据实际需求选择调节方式,设置实例数量。
  6. 完成创建:单击【创建 Workload】,完成创建。

    当运行数量 = 期望数量时,即表示 Deployment 下的所有 Pod 已创建完成。

    创建 Deployment

更新 Deployment

更新 YAML

  1. 登录 TKE 控制台

  2. 进入集群管理页面:在左侧导航栏中,单击【集群】。

  3. 选择集群:单击需要更新 Deployment 的集群【ID/名称】,进入待更新 Deployment 的集群管理页面。

  4. 编辑 YAML:在需要更新 YAML 的 Deployment 行中,单击【更多】 > 【编辑 YAML】,进入更新 Deployment 页面。

  5. 完成更新:在“更新 Deployment”页面,编辑 YAML,单击【完成】,即可更新 YAML。

    更新 YAML

更新 Pod 配置

  1. 登录 TKE 控制台
  2. 进入集群管理页面:在左侧导航栏中,单击【集群】。
  3. 选择集群:单击需要更新镜像的 Deployment 的集群 ID,进入待更新 Pod 配置的 Deployment 的集群管理页面。
  4. 更新配置:在需要更新镜像的 Deployment 行中,单击【更新 Pod 配置】。
  5. 设置参数:在“更新 Pod 配置”页面,根据实际需求修改更新方式,设置参数。
  6. 完成更新:单击【完成】,即可更新 Pod 配置。

更新镜像

  1. 选择集群:在集群管理页面,单击需要更新镜像的 Deployment 的集群 ID,进入待更新镜像的 Deployment 的集群管理页面。
  2. 更新镜像:在需要更新镜像的 Deployment 行中,单击【更新镜像】。
  3. 设置参数:在“滚动更新镜像”页面,根据实际需求修改更新方式,设置参数。
  4. 完成更新:单击【完成】,即可更新镜像。

重新部署 Deployment

  1. 登录 TKE 控制台
  2. 进入集群管理页面:在左侧导航栏中,单击【集群】。
  3. 选择集群:单击需要更新 Deployment 的集群【ID/名称】,进入待重新部署 Deployment 的集群管理页面。
  4. 重新部署:在需要重新部署的 Deployment 行中,单击【更多】 > 【重新部署】,弹出“重新部署”窗口。
  5. 完成重新部署:在“重新部署”窗口,单击【完成】,即可重新部署 Deployment。

更新调度策略

  1. 登录 TKE 控制台
  2. 进入集群管理页面:在左侧导航栏中,单击【集群】。
  3. 选择集群:单击需要更新 Deployment 的集群【ID/名称】,进入待更新调度策略 Deployment 的集群管理页面。
  4. 更新策略:在需要更新调度策略的 Deployment 行中,单击【更多】 > 【更新调度策略】,弹出“更新调度策略”窗口。
  5. 完成更新:在“更新调度策略”窗口,更新节点调度策略,单击【完成】。

回滚 Deployment

  1. 登录 TKE 控制台
  2. 进入集群管理页面:在左侧导航栏中,单击【集群】。
  3. 选择集群:单击需要回滚 Deployment 的集群【ID/名称】,进入待回滚 Deployment 的集群管理页面。
  4. 选择 Deployment:单击需要回滚的 Deployment 名称,进入 Deployment 信息页面。
  5. 选择修订历史:选择【修订历史】页签,在需要回滚的版本行中,单击【回滚】。
  6. 完成回滚:在弹出的【回滚资源】提示框中,单击【提交】,完成回滚。

调整 Pod 数量

  1. 登录 TKE 控制台
  2. 进入集群管理页面:在左侧导航栏中,单击【集群】。
  3. 选择集群:单击需要调整 Pod 数量的 Deployment 的集群【ID/名称】,进入待调整 Pod 数量的 Deployment 的集群管理页面。
  4. 调整数量:在需要调整 Pod 数量的 Deployment 行中,单击【更新实例数量】,进入“更新实例数量”页面。
  5. 完成调整:根据实际需求调整 Pod 数量,单击【更新实例数量】,完成调整。

Kubectl 操作 Deployment 指引

YAML 示例

apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: nginx-deployment
namespace: default
labels:
app: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx-deployment
template:
metadata:
labels:
app: nginx-deployment
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
  • kind:标识 Deployment 资源类型。
  • metadata:Deployment 的名称、Namespace、Label 等基本信息。
  • metadata.annotations:对 Deployment 的额外说明,可通过该参数设置 TKE 的额外增强能力。
  • spec.replicas:Deployment 管理的 Pod 数量。
  • spec.selector:Deployment 管理 Selector 选中的 Pod 的 Label。
  • spec.template:Deployment 管理的 Pod 的详细模板配置。

更多参数详情可查看 Kubernetes Deployment 官方文档。

Kubectl 创建 Deployment

  1. 准备 YAML 文件:参考 YAML 示例,准备 Deployment YAML 文件。

  2. 安装 Kubectl:安装 Kubectl,并连接集群。操作详情请参考 通过 Kubectl 连接集群

  3. 创建 Deployment:执行以下命令,创建 Deployment YAML 文件。

    kubectl create -f Deployment YAML 文件名称

    例如,创建一个文件名为 nginx.Yaml 的 Deployment YAML 文件,则执行以下命令:

    kubectl create -f nginx.yaml
  4. 验证创建:执行以下命令,验证创建是否成功。

    返回类似以下信息,即表示创建成功:

    NAME             DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    first-workload 1 1 1 0 6h
    ng 1 1 1 1 42m

Kubectl 更新 Deployment

通过 Kubectl 更新 Deployment 有以下三种方法。其中,方法一 和 方法二 均支持 RecreateRollingUpdate 两种更新策略。

  • Recreate 更新策略为先销毁全部 Pod,再重新创建 Deployment。
  • RollingUpdate 更新策略为滚动更新策略,逐个更新 Deployment 的 Pod。RollingUpdate 还支持暂停、设置更新时间间隔等。

方法一

执行以下命令,更新 Deployment。

kubectl edit deployment/[name]

此方法适用于简单的调试验证,不建议在生产环境中直接使用。您可以通过此方法更新任意的 Deployment 参数。

方法二

执行以下命令,更新指定容器的镜像。

kubectl set image deployment/[name] [containerName]=[image:tag]

建议保持 Deployment 的其他参数不变,业务更新时,仅更新容器镜像。

方法三

执行以下命令,滚动更新指定资源。

kubectl rolling-update [NAME] -f FILE

更多滚动更新可参见 滚动更新说明

Kubectl 回滚 Deployment

  1. 查看更新历史:执行以下命令,查看 Deployment 的更新历史。

    kubectl rollout history deployment/[name]
  2. 查看版本详情:执行以下命令,查看指定版本详情。

    kubectl rollout history deployment/[name] --revision=[REVISION]
  3. 回滚到前一个版本:执行以下命令,回滚到前一个版本。

    kubectl rollout undo deployment/[name]

    如需指定回滚版本号,可执行以下命令。

    kubectl rollout undo deployment/[name] --to-revision=[REVISION]

Kubectl 调整 Pod 数量

手动更新 Pod 数量

执行以下命令,手动更新 Pod 数量。

kubectl scale deployment [NAME] --replicas=[NUMBER]

自动更新 Pod 数量

前提条件

开启集群中的 HPA 功能。TKE 创建的集群默认开启 HPA 功能。

操作步骤

执行以下命令,设置 Deployment 的自动扩缩容。

kubectl autoscale deployment [NAME] --min=10 --max=15 --cpu-percent=80

Kubectl 删除 Deployment

执行以下命令,删除 Deployment。

kubectl delete deployment [NAME]