最近更新时间:2023.10.17 10:17:19
首次发布时间:2022.03.04 23:10:38
在运行中始终不保存任何数据或状态的工作负载称为无状态负载,对应 Kubernetes 中的 Deployment。用户可以通过镜像在集群中创建一个无状态负载。本文介绍如何创建无状态负载应用。
参数 | 说明 |
---|---|
名称 | 根据系统提示,配置无状态负载的名称。在同一个命名空间下,名称必须唯一。 |
命名空间 | 选择无状态负载部署的命名空间,支持选择自定义创建的命名空间或 Kubernetes 自建的命名空间。Kubernetes 自建命名空间的说明,请参见 命名空间概述。 |
实例个数 | 输入无状态负载的 Pod 实例个数。 |
标签 | 填写无状态负载的标签,对应 Kubernetes 中的 Label,用于识别无状态负载的键值对,配合选择器,帮助 Kubernetes 快速筛选目标无状态负载。例如 |
注解 | 填写无状态负载的注解信息,对应 Kubernetes 中的 Annotation,主要记录用于应用部署、安全策略、调度策略的附加信息,不用于标识和区分资源。 |
弹性容器实例 | VPC-CNI 网络模型的集群显示该参数。选择是否以弹性容器实例方式部署工作负载。弹性容器实例相关介绍,请参见 什么是弹性容器实例。 |
日志采集 | 选择 以弹性容器实例方式部署 后显示该参数。要开启后采集弹性容器实例日志。详细说明,请参见 日志采集规则。 |
参数 | 说明 |
---|---|
容器名称 | 根据系统提示的命名规则,输入容器名称。同一个工作负载下容器名称必须唯一。 |
容器镜像 | 容器使用的镜像。支持使用第三方镜像和镜像仓库 CR 中的镜像:
|
镜像版本 | 选择镜像的版本,不选择则默认拉取 注意
|
镜像密钥 | 默认不开启。开启后需要配置镜像仓库密钥。选择已有的仓库密钥或单击 创建仓库密钥,按如下说明在容器服务侧补充镜像仓库的密钥:
注意 不使用免密组件,且需要拉取私有镜像时,必须配置该参数。 |
资源配额 | 支持按照业务需求,在容器维度配置 CPU 和内存的上下限,保障容器的健康运行。若不设置,则表示容器资源配额无限制。
说明
|
特权级容器 | 默认不开启。开启后特权级容器可以访问宿主上的设备。支持部署在 Linux 系统上的容器控制网络堆栈或访问设备。 |
Init 容器 | 默认不开启。开启后表示将该容器设置为 Init 容器。Init 容器是 Pod 中,运行在应用容器前的容器,并且它可以包括仅在安装过程中使用的工具(例如 python、dig)和代码,避免在应用容器中的重复部署,提升应用镜像的安全性。 说明 Init 容器不支持设置生命周期管理中的启动后处理、停止前处理,不支持开启健康检查。 |
nginx
的 TCP 协议 80 端口。类型 | 说明 |
---|---|
自定义 | 支持输出入变量名称和变量值,创建自定义的环境变量。 |
配置项 | 支持部分引用或全部引用配置项中的变量。部分引用时,一条规则仅支持为一个 Key 创建环境变量。 |
保密字典 | 支持部分引用或全部引用保密字典中的变量。部分引用时,一条规则仅支持为一个 Key 创建环境变量。 |
实例字段 | 支持引用实例字段中的值,创建环境变量。
|
容器资源 | 支持引用容器中的字段作为环境变量。
|
类型 | 说明 |
---|---|
配置项 | 支持为配置项中的全部数据或部分数据创建数据卷。为部分数据创建存储卷时,支持配置多数据 item,用半角分号 (;)分隔。例如 cm1:path1;cm2:path2 。 |
保密字典 | 支持部分挂载或全部挂载保密字典中的数据。为部分数据创建存储卷时,支持配置多数据 item,用半角分号 (;)分隔。例如 cm1:path1;cm2:path2 。 |
存储卷声明 | 选择当前工作负载命名空间中已创建的存储卷声明,并为其指定数据卷的名称。 |
临时目录 | 为临时目录创建数据卷名称。 |
主机目录 | 为主机中的目录创建数据卷。 |
类型 | 说明 |
---|---|
运行命令 | 输入容器启动前运行的命令。 |
运行参数 | 输入容器启动前所运行命令的参数。 |
启动后处理 | 输入启动后命令。 |
停止前处理 | 输入停止前处理命令。 |
配置项 | 说明 |
---|---|
检查方式 | 配置检查的方式,包括:
|
时间设置 | 配置检查的时间参数,包括:
|
阈值设置 | 配置检查的结果阈值。包括:
|
配置项 | 说明 |
---|---|
优雅退出 | 优雅时间是指实例终止前的缓冲时间,默认为 30 秒。当配置为 0 时,表示立即删除实例。 |
更新策略 | 配置实例更新策略,包括:
|
最大不可用 | 指定 滚动更新 缩容过程中,无状态负载中可用的实例 (Pod) 的数量的下限。选择 滚动更新 策略时,需要配置此配置项。支持基于百分比或具体数值配置 Pod 的最大不可用数量。使用百分比时,会将计算结果转换成绝对值并去除小数部分。最大不可用 和 最大超量 不能同时为 0。 |
最大超量 | 指定 滚动更新 扩容过程中,无状态负载中可用的实例 (Pod) 的数量的上限。选择 滚动更新 策略时,需要配置此配置项。支持基于百分比或具体数值配置 Pod 的最大超量。使用百分比时,会将计算结果转换成绝对值并去除小数部分。最大不可用 和 最大超量 不能同时为 0。 |
实例标签 | 配置 Pod 实例标签,配合标签选择器,帮助 Kubernetes 筛选目标 Pod。单击 添加实例标签,根据界面提示输入符合要求的 键 和 值。 |
实例注解 | 配置 Pod 实例注解。单击 添加实例注解,根据界面提示输入符合要求的 键 和 值。 注解对应 Kubernetes 中的 Annotation,不用于标识和区分资源,主要记录用于应用部署、安全策略、调度策略的附加信息。 |
DNS 策略 | 配置实例的 DNS 策略。包括:
|
配置项 | 说明 |
---|---|
节点亲和调度 | 配置工作负载和节点的亲和性调度。包括:强制调度和优先调度。
|
节点污点调度 | 配置节点污点调度。通过匹配标签进行调度选择,可以设置 2 种匹配关系(equal, exists)。 |
实例亲和调度 | 配置工作负载和其他实例的亲和性调度。包括:强制调度和优先调度。
|
实例反亲和调度 | 配置工作负载和其他实例的反亲和性调度。包括:强制调度和优先调度。
|
root
角色运行将会启动失败。说明
通过 kubectl 命令行创建无状态负载前请确保:
deployment-demo.yaml
代码如下:apiVersion: apps/v1 kind: Deployment metadata: name: deployment-demo # 无状态负载名称。 namespace: default # 无状态负载所在的命名空间。 spec: replicas: 2 # 无状态负载的副本数。 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx # 容器名称。 image: cr-cn-beijing.volces.com/demo-namespace/demo-repo:v1 # 容器镜像地址和 Tag。 ports: - containerPort: 80 # 容器开放的端口号。 resources: requests: # 指定容器的 CPU 和内存请求。 cpu: "500m" memory: "1024Mi" limits: # 指定资源配额,例如:CPU 上限、内存上限、RDMA 卡数等。 cpu: "1" memory: "2Gi" vke.volcengine.com/rdma: 2
kubectl apply -f deployment-demo.yaml
操作完成后可以在 工作负载 > 无状态负载 页面查看工作负载的状态。