运行中始终不保存任何数据或状态的工作负载称为无状态负载,对应 Kubernetes 中的 Deployment,更多详细介绍参见:Kubernetes 官网文档。
配置项 | 说明 |
---|---|
名称 | 自定义无状态负载的名称。要求在同一个命名空间下,名称必须唯一。 |
命名空间 | 选择无状态负载部署的命名空间,支持选择自定义创建的命名空间或 Kubernetes 自建的命名空间。 |
实例个数 | 输入无状态负载的 Pod 实例个数。 |
标签 | 单击 添加标签,自定义配置无状态负载的标签。对应 Kubernetes 中的 Label,用于识别无状态负载的键值对,配合选择器,帮助 Kubernetes 快速筛选目标无状态负载。例如service.istio.io/canonical-revision:latest 。 |
注解 | 单击 添加注解,自定义配置无状态负载的注解信息。对应 Kubernetes 中的 Annotation,主要记录用于应用部署、安全策略、调度策略的附加信息,不用于标识和区分资源。 |
同步时区 | 开启后,容器与节点使用相同时区,以节点本地所属时区的 CST(Central Standard Time)时区为准。 |
配置项 | 说明 |
---|---|
容器名称 | 根据系统提示的命名规则,输入容器名称。同一个工作负载下容器名称必须唯一。 |
容器镜像 | 容器使用的镜像。支持使用第三方镜像和镜像仓库(CR) 中的镜像:
|
镜像版本 | 选择镜像的版本,不选择则默认拉取 注意
|
镜像拉取策略 | 拉取容器镜像的策略:
|
镜像密钥 | 默认关闭。开启后需要配置镜像仓库密钥。选择已有的仓库密钥或单击 创建仓库密钥,按如下说明补充镜像仓库的密钥:
|
资源配额 | 支持按照业务需求,在容器维度配置 CPU 和内存的上下限,保障容器的健康运行。若不设置,则表示容器资源配额无限制。
说明
|
特权级容器 | 默认关闭。开启后特权级容器可以访问宿主上的设备。支持部署在 Linux 系统上的容器控制网络堆栈或访问设备。 |
Init 容器 | 默认关闭。开启后表示将该容器设置为 Init 容器。Init 容器是 Pod 中,运行在应用容器前的容器,并且它可以包括仅在安装过程中使用的工具(例如 python、dig)和代码,避免在应用容器中的重复部署,提升应用镜像的安全性。 |
Stdin | 开启后,在容器运行时为容器标准输入 (Stdin) 分配缓冲区。 |
Tty | 开启后,为容器分配一个终端,需同时勾选 Stdin。 |
配置项 | 说明 |
---|---|
端口 | 配置容器中应用对容器外服务的连接端口,包括支持的协议(TCP、UDP)、端口号、端口名称。例如 Nignx 监听端口名称为nginx 的 TCP 协议 80 端口。 |
环境变量 | 配置环境变量。Kubernetes 在创建 Pod 时,会将环境变量的信息注入到容器中。 |
自定义:输入变量名称和变量值,创建自定义的环境变量。 | |
配置项:部分引用或全部引用配置项中的变量。部分引用时,一条规则仅支持为一个 Key 创建环境变量。 | |
保密字典:部分引用或全部引用保密字典中的变量。部分引用时,一条规则仅支持为一个 Key 创建环境变量。 | |
实例字段:引用实例字段中的值,创建环境变量。
说明 当选择类型为 | |
容器资源:引用容器中的字段作为环境变量。
| |
添加卷 | 添加数据卷。卷(Volume)是容器中存储数据的位置。为一类数据分配存储资源前,需要先在容器中指定待存储数据的目录。 |
配置项:支持为配置项中的全部数据或部分数据创建数据卷。为部分数据创建存储卷时,支持配置多数据 item,用半角分号 (;)分隔。例如 cm1:path1;cm2:path2 。 | |
保密字典:支持部分挂载或全部挂载保密字典中的数据。为部分数据创建存储卷时,支持配置多数据 item,用半角分号 (;)分隔。例如 cm1:path1;cm2:path2 。 | |
存储卷声明:选择当前工作负载命名空间中已创建的存储卷声明,并为其指定数据卷的名称。 | |
临时目录:为临时目录创建数据卷名称。 | |
主机目录:为主机中的目录创建数据卷。 | |
挂载卷 | 为已创建的卷分配存储资源,并分配读写权限。其中,支持通过 subPath 方式挂载卷的子目录;支持通过 subPathExpr 方式挂载卷的扩展路径。 |
启动命令 | 创建容器时自动注入容器运行前后的执行命令,设置的命令和参数将填写在配置文件中。如果容器镜像中存在相同的命令和参数,那么配置文件中命令和参数将覆盖容器镜像中的对应命令和参数。
|
启动后处理 | 按需配置启动后命令,每个命令和参数单独一行。 |
停止前处理 | 按需配置停止前处理命令,每个命令和参数单独一行。 |
支持配置 存活检查、就绪检查 和 启动检查。允许基于 HTTP 协议、TCP 协议或执行具体命令的方式,探测容器中的负载是否正常。以下以配置存活检查为例,介绍配置参数。
配置项 | 说明 |
---|---|
检查方式 | 配置检查的方式,包括:
|
时间设置 | 配置检查的时间参数,包括:
|
阈值设置 | 配置检查的结果阈值。包括:
|
配置项 | 说明 |
---|---|
优雅退出 | 优雅时间是指实例终止前的缓冲时间,默认为 30 秒。当配置为 0 时,表示立即删除实例。 |
更新策略 | 配置实例更新策略,包括:
|
最大不可用 | 选择滚动更新策略时,需要配置此配置项。指定滚动更新缩容过程中,工作负载中可用的实例 (Pod) 的数量的下限。支持基于百分比或具体数值配置 Pod 的最大不可用数量;使用百分比时,会将计算结果转换成绝对值并去除小数部分; 说明 最大不可用 和 最大超量 不能同时为 0。 |
最大超量 | 选择滚动更新策略时,需要配置此配置项。指定滚动更新扩容过程中,工作负载中可用的实例 (Pod) 的数量的上限。支持基于百分比或具体数值配置 Pod 的最大超量;使用百分比时,会将计算结果转换成绝对值并去除小数部分。 |
实例标签 | 配置 Pod 实例标签,配合标签选择器,帮助 Kubernetes 筛选目标 Pod。单击 添加实例标签,根据界面提示输入符合要求的 键 和 值。 |
实例注解 | 配置 Pod 实例注解。单击 添加实例注解,根据界面提示输入符合要求的 键 和 值。 注解对应 Kubernetes 中的 Annotation,不用于标识和区分资源,主要记录用于应用部署、安全策略、调度策略的附加信息。 |
DNS 策略 | 配置实例的 DNS 策略。包括:
|
节点亲和调度 | 配置工作负载和节点的亲和性调度。包括:强制调度和优先调度。
|
节点污点调度 | 配置节点污点调度。通过匹配标签进行调度选择,可以设置 2 种匹配关系(equal, exists)。 |
实例亲和调度 | 配置工作负载和其他实例的亲和性调度。包括:强制调度和优先调度。
|
实例反亲和调度 | 配置工作负载和其他实例的反亲和性调度。包括:强制调度和优先调度。
|
非 root 用户运行 | 默认关闭。用于指定容器必须以非 root 权限运行,开启后,若以 root 权限运行,容器将会启动失败。 |
无状态负载创建完成后,将返回资源管理页面。单击资源列表顶部操作按钮或右侧操作列...
中的操作按钮,可执行对应管理操作。详细说明如下:
操作 | 说明 |
---|---|
使用 Yaml 创建 | 使用 Yaml 创建资源,推荐直接粘贴已经根据业务需求配置的 Yaml 内容。相较于使用控制台创建资源,使用 Yaml 方式支持的参数更全面。 |
重新部署 | 重新部署当前工作负载,重新部署过程将重启当前工作负载下的全部 Pod。 |
克隆 | 克隆已有无状态负载的配置快速创建新的工作负载,支持按需修改克隆后的配置。 |
编辑 Yaml | 编辑已经创建工作负载的文件,更新配置信息。 |
更新实例数 | 更新工作负载中的 Pod 实例个数。 |
更新镜像 | 快速更新当前工作负载中指定容器的容器镜像和镜像版本,并重新部署。 |
导出 | 导出当前工作负载的 Yaml 文件。 |
删除 | 删除目标工作负载。 警告 删除工作负载将导致服务不可用,请谨慎操作。 |
创建无状态负载的 Yaml 测试示例如下,具体参数和配置以实际使用场景中各云厂商的定义为准。
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment # adjust name for your deployment namespace: default # specify your namespace to apply deployment spec: replicas: 2 # adjust number of replicas for your deployment selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx # adjust name of container image: nginx:1.14.2 # adjust image_name and tag for your container ports: - containerPort: 80 # adjust port for your container