创建 Deployments

操作步骤 1 - 配置基本信息

  1. Container Platform,在左侧导航栏中导航至 Workloads > Deployments
  2. 单击 创建 Deployment
  3. 选择输入 镜像,单击 确认
INFO

说明:当使用来自网页控制台集成的镜像仓库中的镜像时,可以通过 已经集成 进行筛选。集成项目名称,例如,镜像(docker-registry-projectname),其中包含在此网页控制台和镜像仓库中项目名称的 projectname。

  1. 基本信息 部分,配置 Deployment 工作负载的声明性参数:

    参数说明
    实例数定义 Deployment 中期望的 Pod 副本数(默认为 1)。根据工作负载需求进行调整。
    更多 > 更新策略配置零停机时间部署的 rollingUpdate 策略:
    最大可超出数 (maxSurge):
    • 更新期间 Pods 数量最大可以超出期望副本数的数量。
    • 接受绝对值(例如,2)或百分比(例如,20%)。
    • 百分比计算:ceil(current_replicas × percentage)
    • 示例:从 10 个副本计算,4.1 → 5
    最多不可用数 (maxUnavailable):
    • 更新期间可以暂时不可用的 Pods 的最大数量。
    • 百分比值不能超过 100%
    • 百分比计算:floor(current_replicas × percentage)
    • 示例:从 10 个副本计算,4.9 → 4
    注意
    1. 默认值:如果未明确设置,则 maxSurge=1maxUnavailable=1
    2. 非运行的 Pods(例如,处于 Pending/CrashLoopBackOff 状态)会被视为不可用。
    3. 同时约束
    • maxSurgemaxUnavailable 不能同时为 00%
    • 如果百分比值对于两个参数都解析为 0,Kubernetes 强制将 maxUnavailable=1 以确保更新进展。
    示例
    对于具有 10 个副本的 Deployment:
    • maxSurge=2 → 更新期间的总 Pods 数: 10 + 2 = 12
    • maxUnavailable=3 → 可用 Pods 的最少数量: 10 - 3 = 7
    • 这确保了可用性,同时允许受控发布。

操作步骤 2 - 配置 Pod

注意:在混合架构集群中部署单架构镜像时,请确保为 Pod 调度配置了正确的 节点亲和性规则

  1. Pod 区域,配置容器运行时参数和生命周期管理:

    参数说明
    存储卷挂载持久卷到容器中。支持的卷类型包括 PVCConfigMapSecretemptyDirhostPath 等。有关实现详细信息,请参见 存储卷挂载指南
    镜像凭据仅在从第三方注册表(通过手动输入镜像 URL)拉取镜像时必需。
    说明:来自平台集成注册表的镜像自动继承相关的凭据。
    关闭宽限期Pod 在接收到终止信号后完成优雅关机的最长允许持续时间(默认为 30s)。
    - 在此期间,Pod 完成正在进行的请求并释放资源。
    - 设置为 0 会强制立即删除(SIGKILL),可能导致请求中断。
  1. 节点亲和性规则

    参数说明
    更多 > 节点选择器将 Pods 限制于具有特定标签的节点上(例如,kubernetes.io/os: linux)。
    Node OS Selector
    更多 > 亲和性基于现有 Pods 定义细粒度调度规则:
    Pod 亲和性类型
    • Pod 亲和性:将新 Pods 调度到承载特定 Pods 的节点上(同一拓扑域)。
    • Pod 反亲和性:阻止新 Pods 与特定 Pods 同位置。
    强制模式
    • RequiredDuringSchedulingIgnoredDuringExecution:只有在满足规则的情况下才调度 Pods。
    • PreferredDuringSchedulingIgnoredDuringExecution:优先考虑满足规则的节点,但允许例外。
    配置字段
    • topologyKey:定义拓扑域的节点标签(默认为 kubernetes.io/hostname)。
    • labelSelector:使用标签查询过滤目标 Pods。
  2. 网络配置

    • Kube-OVN

      参数说明
      带宽限制对 Pod 网络流量实施 QoS:
      • 出口速率限制:最大外发流量速率(例如,10Mbps)。
      • 入口速率限制:最大入站流量速率。
      子网从预定义的子网池中分配 IP。如果未指定,使用命名空间的默认子网。
      固定 IP 地址将持久 IP 地址绑定到 Pods:
      • 多个 Pods 可以在不同的 Deployments 中声明相同的 IP,但每次只能有一个 Pod 并发使用该 IP。
      • 关键:固定 IP 数量必须 ≥ Pod 副本数。
    • Calico

      参数说明
      固定 IP 地址绑定固定 IP 地址以确保唯一性:
      • 每个 IP 在集群中只能绑定到一个 Pod
      • 关键:固定 IP 数量必须 ≥ Pod 副本数。

操作步骤 3 - 配置容器

  1. 容器 区域,参考以下说明配置相关信息。

    参数说明
    资源请求与资源限制
    • 请求:容器运行所需的最小 CPU/内存。
    • 限制:容器执行期间允许的最大 CPU/内存。有关单位定义,请参见 资源单位
    命名空间超售比
    • 没有超售比
      如果命名空间资源配额存在:容器请求/限制继承命名空间默认值(可修改)。
      没有命名空间配额:没有默认值;自定义请求。
    • 有超售比
      请求自动计算为 Limits / Overcommit ratio(不可变)。
    约束
    • Request ≤ Limit ≤ Namespace quota maximum。
    • 超售比更改需要重建 Pod 才能生效。
    • 超售比禁用手动请求配置。
    • 没有命名空间配额→没有容器资源约束。
    扩展资源配置集群可用的扩展资源(例如,vGPU、pGPU)。
    存储卷挂载配置存储信息,实现容器中数据的持久存储。存储卷类型说明请参考 存储卷挂载说明
    • 如果容器组中已经添加存储卷,单击 添加
    • 如果容器组中未添加存储卷,单击 添加存储卷并挂载
    通用参数说明:
    • 挂载路径:容器文件系统中的挂载存储卷的路径(例如,/data)。
    • 子路径:卷内相对文件/目录路径。
      对于 ConfigMap/Secret:选择特定键
    • 只读:以只读方式挂载(默认:可读写)。
    有关详细信息,请参见 Kubernetes Volumes
    端口暴露容器端口。
    示例:暴露 TCP 端口 6379,并将其命名为 redis
    字段
    • protocol:TCP/UDP
    • Port:暴露的端口(例如,6379
    • name:符合 DNS 的标识符(例如,redis
    启动命令与参数重写默认的 ENTRYPOINT/CMD:
    示例 1:执行 top -b
    - 命令["top", "-b"]
    - 或者 命令:["top"],参数:["-b"]
    示例 2:输出 $MESSAGE
    /bin/sh -c "while true; do echo $(MESSAGE); sleep 10; done"
    有关更多示例和说明,请参见 定义命令
    更多 > 环境变量
    • 静态值:直接键值对。
    • 动态值:引用 ConfigMap/Secret 键、Pod 字段(fieldRef)、资源度量(resourceFieldRef
    注意:环境变量覆盖镜像/配置文件设置。
    更多 > 引用的 ConfigMap将整个 ConfigMap/Secret 作为环境变量注入。支持的 Secret 类型: Opaquekubernetes.io/basic-auth
    更多 > 健康检查
    • 存活性探针:检测容器健康(如失败则重启)
    • 就绪性探针:检测服务可用性(如失败则从端点移除)
    有关健康检查参数的详细信息,请参见 健康检查参数
    更多 > 日志文件配置日志路径:
    - 默认:收集 stdout
    - 文件模式:例如,/var/log/*.log
    要求
    • 存储驱动 overlay2:默认支持此功能
    • devicemapper:手动将 EmptyDir 挂载到日志目录
    • Windows 节点:确保父目录已挂载(例如,c:/a 对于 c:/a/b/c/*.log
    更多 > 排除日志文件从收集中排除特定日志(例如,/var/log/aaa.log)。
    更多 > 在停止前执行在容器终止前执行命令。
    示例echo "stop"
    注意:命令执行时间必须短于 Pod 的 terminationGracePeriodSeconds
  2. 单击右上角的 添加容器添加初始化容器

    初始化容器。 初始化容器:

    1. 在应用容器之前启动。
    2. 完成后释放资源。
    3. 删除的条件:
      • Pod 有超过 1 个应用容器且至少有 1 个初始化容器。
      • 单一应用容器 Pods 不允许删除。
  3. 单击 创建

参考信息​

存储卷挂载说明

类型用途
持久卷声明选择一个已创建的 PVC 以请求持久存储。
说明:仅支持选择已绑定 PVC(具有相关 PV)。未绑定 PVC 会导致 Pods 创建失败。
ConfigMap将完整/部分 ConfigMap 数据作为文件挂载:
  • 完整 ConfigMap:根据键在挂载路径下创建命名文件
  • 子路径选择:挂载特定键(例如,my.cnf
Secret将完整/部分 Secret 数据作为文件挂载:
  • 完整 Secret:根据键在挂载路径下创建命名文件
  • 子路径选择:挂载特定键(例如,tls.crt
临时卷由集群提供的临时卷,具有特性:
  • 动态供应
  • 生命周期与 Pod 相关
  • 支持声明式配置
用例:临时数据存储。参见 PVC
空目录在同一 Pod 中的容器之间共享临时存储:
- 当 Pod 启动时在节点上创建
- 当 Pod 被移除时被删除
用例:容器间文件共享,临时数据存储。
主机路径将容器数据挂载到主机本地文件系统路径。主机路径必须以 / 开头,例如: /volumepath

健康检查参数

通用参数

参数描述
启动时间启动 Pods 前的宽限时间(秒)。默认为 300
间隔健康检查的时间间隔(1-120s)。默认为 60
超时时长健康检查的超时持续时间(1-300s)。默认为 30
正常阈值标记健康所需的最小连续成功次数。默认为 0
不正常阈值触发行动的最大连续失败次数:
- 0:禁用基于失败的行动
- 默认为 5 次失败 → 容器重启。

协议特定参数

参数适用协议说明
协议HTTP/HTTPS健康检查使用的协议
端口HTTP/HTTPS/TCP目标容器的端口用于探测。
路径HTTP/HTTPS端点路径(例如,/healthz)。
HTTP 头HTTP/HTTPS自定义请求头(添加键值对)。
命令EXEC容器可执行的健康检查命令(例如,sh -c "curl -I localhost:8080 | grep OK")。
说明: 转义特殊字符并测试命令的有效性。