设置工作负载的基本信息。
参数 | 描述 |
---|---|
名称 | 工作负载的名称。名称只能包含小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 253 个字符。 |
别名 | 工作负载的别名。不同工作负载的别名可以相同。别名只能包含中文、字母、数字和连字符(-),不得以连字符(-)开头或结尾,最长 63 个字符。 |
描述 | 工作负载的描述信息。描述可包含任意字符,最长 256 个字符。 |
本节介绍如何创建工作负载。
KubeSphere 平台需要安装并启用联邦集群应用管理扩展组件。
您需要加入一个联邦项目并在对应企业空间中具有联邦项目管理权限。
请参阅参数描述设置工作负载的参数。
以具有联邦项目管理权限的用户登录 KubeSphere Web 控制台并进入您的联邦项目。
在左侧导航栏选择应用负载 > 工作负载。
在工作负载页面,点击部署或有状态副本集打开工作负载列表。
在页面点击创建。
在基本信息页签,设置工作负载的基本信息,然后点击下一步。
在容器组设置页签,为工作负载管理的容器组设置副本数量、容器、更新策略、安全上下文、调度规则和元数据,然后点击下一步。
在存储设置页签,为工作负载管理的容器挂载卷,然后点击下一步。
在高级设置页签,为工作负载管理的容器组指定节点,并设置工作负载的元数据。
在集群差异设置页签,为不同集群中的工作负载基于容器、端口和环境变量进行差异化设置,然后点击创建。
工作负载创建完成后将显示在工作负载列表中。
以下介绍如何设置工作负载的参数。
基本信息
设置工作负载的基本信息。
参数 | 描述 |
---|---|
名称 | 工作负载的名称。名称只能包含小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 253 个字符。 |
别名 | 工作负载的别名。不同工作负载的别名可以相同。别名只能包含中文、字母、数字和连字符(-),不得以连字符(-)开头或结尾,最长 63 个字符。 |
描述 | 工作负载的描述信息。描述可包含任意字符,最长 256 个字符。 |
容器组设置 > 副本调度模式
参数 | 描述 |
---|---|
指定副本数量 | 手动设置每个集群的容器组副本数。 点击 |
指定权重 | 设置容器组副本总数和每个集群的权重。容器组副本将根据权重比例调度到每个集群。 点击 例如:如果容器组副本总数是 10,host 和 member 集群的权重分别为 3 和 2,那么 host 集群的容器组副本数为 6,member 集群的容器组副本数为 4。 |
容器组设置 > 添加容器
创建容器组中运行的容器。您可以在容器组中创建多个容器。
点击添加容器可创建容器。
将光标悬停在已创建的容器上,然后在右侧点击可编辑容器的设置。
将光标悬停在已创建的容器上,然后在右侧点击可删除容器。
容器组设置 > 添加容器 > 容器设置
设置容器的镜像、名称、类型和资源。
参数 | 描述 |
---|---|
镜像 | 创建容器所需的镜像。
|
容器名称 | 容器的名称。名称只能包含小写字母、数字和连字符(-),必须以小写字母或数字开头和结尾,最长 63 个字符。 |
容器类型 | 容器的类型。
|
CPU 预留 | 为容器预留的 CPU 资源,单位为核。 |
CPU 上限 | 允许容器使用的 CPU 资源上限,单位为核。 |
内存预留 | 为容器预留的内存资源,单位为 MiB。 |
内存上限 | 允许容器使用的内存资源上限,单位为 MiB。 |
GPU 类型 | 对容器上限使用量的 GPU 类型。目前仅支持设置 NVIDIA GPU。 |
GPU 上限 | 允许容器使用的 GPU 数量上限,单位为 GPU。 |
容器组设置 > 添加容器 > 端口设置
设置容器的端口。点击使用默认镜像端口可将容器端口设置为镜像的默认端口。点击添加端口可为容器设置多个端口。
参数 | 描述 |
---|---|
协议 | 容器中的应用程序实际监听的协议。如需使用 KubeSphere 提供的应用治理功能,请确保此处选择的协议与容器中的应用程序实际监听的协议保持一致。 |
名称 | 端口的名称。如需使用 KubeSphere 提供的应用治理功能,请使用协议名称小写作为端口名称的前缀(例如 http-)。 |
容器端口 | 容器中的应用程序实际监听的端口号。 |
容器组设置 > 添加容器 > 镜像拉取策略
设置容器组创建或更新时是否从镜像服务拉取镜像。
参数 | 描述 |
---|---|
优先使用本地镜像 | 容器组创建或更新时,优先使用容器运行时存储在节点的镜像文件。 |
每次都拉取镜像 | 容器组创建或更新时,每次都尝试从镜像服务拉取镜像。 |
仅使用本地镜像 | 容器组创建或更新时,仅使用容器运行时存储在节点的镜像。如果本地不存在所需的镜像,容器创建将出现异常。 |
容器组设置 > 添加容器 > 健康检查
检查容器的健康状态。使用此功能前,您需要在容器的应用程序中进行设置,使应用程序可以返回健康检查的结果。
KubeSphere 支持以下健康检查类型:
参数 | 描述 |
---|---|
存活检查 | 检查容器是否存话。如果存活检查失败,系统将尝试重启容器。 |
就绪检查 | 检查容器是否已就绪。如果就绪检查失败,系统将禁止通过服务访问容器所在的容器组。 |
启动检查 | 检查容器是否已启动。如果启动检查失败,系统将禁用容器的其他探针,并尝试重启容器。 |
KubeSphere 支持以下检查方式:
参数 | 描述 |
---|---|
HTTP 请求 | 向容器组的虚拟 IP 地址发送 HTTP GET 请求,如果响应状态码为 2XX 或 3XX 则表明检查成功。 |
命令 | 在容器中运行命令,如果命令的退出码为 0 则表明检查成功。 |
TCP 端口 | 尝试与指定的容器端口建立 TCP 连接,如果连接建立成功则表明检查成功。 |
容器组设置 > 添加容器 > 健康检查 > 添加探针
创建探针对容器进行存活检查、就绪检查或启动检查。
点击添加探针可创建探针。
将光标悬停在已创建的探针上,然后在右侧点击可编辑探针的设置。
将光标悬停在已创建的探针上,然后在右侧点击可删除探针。
参数 | 描述 |
---|---|
路径 | HTTP 请求的协议(HTTP 或 HTTPS)、请求目标相对于容器组虚拟 IP 地址的路径以及请求的端口号。仅在健康检查方式为 HTTP 请求时可用。 |
命令 | 将要在容器中运行的命令。您可以使用半角逗号(,)分隔命令及其参数。仅在健康检查方式为命令时可用。 |
端口 | 用于 TCP 检查的容器端口号。仅在健康检查方式为 TCP 端口时可用。 |
初始延迟 | 容器启动后探针启动前的延迟时间,单位为秒。 |
超时时间 | 探针超时时间,单位为秒。探针超时后,检查将被视为失败。取值必须为整数,最小值为 0。 |
检查间隔 | 执行检查的时间间隔,单位为秒。取值必须为整数,最小值为 1。 |
成功阈值 | 检查失败后再次被视为成功所需的最小连续成功次数,最小值为 1。对于存活探针和启动探针,此参数值必须为 1。 |
失败阈值 | 检查成功后再次被视为失败所需的最小连续失败次数,最小值为 1。 |
容器组设置 > 添加容器 > 生命周期管理
设置容器启动后或终止前需要执行的动作,以进行环境检查或体面终止。使用此功能前,您需要在容器的应用程序中进行配置,使应用程序可以返回动作的执行结果。
参数 | 描述 |
---|---|
启动后动作 | 容器启动后需要执行的动作。如果该动作执行失败,系统将尝试重启容器。 |
终止前动作 | 容器终止前需要执行的动作。该动作遵循以下规则:
|
KubeSphere 支持以下启动后动作和终止前动作的执行方式:
参数 | 描述 |
---|---|
HTTP 请求 | 向容器组的虚拟 IP 地址发送 HTTP GET 请求,如果响应状态码为 2XX 或 3XX 则表明动作执行成功。 |
命令 | 在容器中运行命令,如果命令的退出码为 0 则表明动作执行成功。 |
TCP 端口 | 尝试与指定的容器端口建立 TCP 连接,如果连接建立成功则表明动作执行成功。 |
容器组设置 > 添加容器 > 生命周期管理 > 添加动作
创建容器启动后动作或终止前动作。
点击添加动作可创建动作。
将光标悬停在已创建的动作上,然后在右侧点击可编辑动作的设置。
将光标悬停在已创建的动作上,然后在右侧点击可删除动作。
参数 | 描述 |
---|---|
路径 | HTTP 请求的协议(HTTP 或 HTTPS)、请求目标相对于容器组虚拟 IP 地址的路径以及请求的端口号。仅在动作执行方式为 HTTP 请求时可用。 |
命令 | 将要在容器中运行的命令。您可以使用半角逗号(,)分隔命令及其参数。仅在动作执行方式为命令时可用。 |
端口 | 用于 TCP 检查的容器端口号。仅在动作执行方式为 TCP 端口时可用。 |
容器组设置 > 添加容器 > 启动命令
设置容器启动时在容器内部执行的命令。
参数 | 描述 |
---|---|
命令 | 需要执行的命令的名称。 |
参数 | 需要执行的命令的参数。您可以使用半角逗号(,)分隔多个参数。 |
容器组设置 > 添加容器 > 环境变量
设置容器的环境变量。
点击添加环境变量可设置多个环境变量。
点击批量引用可使用配置字典或保密字典中的数据创建环境变量。配置字典或密保字典必须与容器属于同一个项目才能被容器引用。容器创建后环境变量的值不会随配置字典或保密字典设置的变更而动态变化。
在已创建的环境变量右侧点击可删除环境变量。
参数 | 描述 |
---|---|
键 | 环境变量的名称。 |
值 | 环境变量的值。 |
资源 | 配置字典或保密字典的名称。仅在引用配置字典或保密字典时可用。 |
资源中的键 | 配置字典或保密字典中的键。与该键对应的值将被用作环境变量的值。仅在引用配置字典或保密字典时可用。 |
容器组设置 > 添加容器 > 容器组安全上下文
设置容器进程在 Linux 系统中的权限。
参数 | 描述 |
---|---|
访问控制 | 容器进程的访问权限。
|
用户和用户组 | 运行容器进程入口点的用户和用户组。
|
SELinux 上下文 | 容器进程的 SELinux 标签,包括等级、角色、类型和用户。有关更多信息,请参阅 SELinux 官方文档。 |
权能 | 在 Linux 系统中对容器进程额外添加或移除的权限。请参阅 Linux 官方文档获取 Linux 进程的权能列表。
|
容器组设置 > 添加容器 > 同步主机时区
勾选同步主机时区左侧的复选框将使容器和主机的时区同步。
容器组设置 > 更新策略
设置容器组更新时采取的策略。
参数 | 描述 |
---|---|
滚动更新(推荐) | 用新容器组副本逐步替换旧容器组副本。升级过程中业务流量会负载均衡到新旧容器组副本上,业务不会中断。如果您选择此策略,您需要进一步设置最大不可用容器组数量和最大多余容器组数量。 |
同时更新 | 删除全部旧容器组副本再创建新容器组副本。升级过程中业务会中断。 |
容器组设置 > 更新策略 > 滚动更新设置
设置滚动更新策略的相关参数。
参数 | 描述 |
---|---|
最大不可用容器组数量 | 更新过程中允许的不可用容器组副本的最大数量或百分比。 |
最大多余容器组数量 | 更新过程中允许的多余容器组副本的最大数量或百分比。 |
容器组设置 > 容器组安全上下文
设置容器组中所有容器进程在 Linux 系统中的权限。如果容器组安全上下文和容器安全上下文中都设置了用户、用户组和 SELinux 上下文,容器安全上下文中的设置将覆盖容器组安全上下文中的设置。
参数 | 描述 |
---|---|
用户和用户组 | 运行容器进程入口点的用户和用户组。
|
SELinux 上下文 | 容器进程的 SELinux 标签,包括等级、角色、类型和用户。有关更多信息,请参阅 SELinux 官方文档。 |
容器组设置 > 容器组调度规则
设置容器组副本调度到节点的规则。
参数 | 描述 |
---|---|
默认规则 | 不特别指定规则,由系统决定将容器组副本调度到哪个节点上。 |
分散调度 | 尽可能将容器组副本调度到不同的节点上。 |
集中调度 | 尽可能将容器组副本调度到同一个节点上。 |
自定义规则 | 按照用户自定义的规则将容器组副本调度到节点。如果选择此选项,您需要进一步自定义调度规则。 |
容器组设置 > 容器组调度规则 > 自定义规则
设置自定义的容器组调度规则。
点击添加可以设置多条规则。
在已创建的规则右侧点击可删除规则。
参数 | 描述 |
---|---|
类型 | 规则的类型。
|
策略 | 规则实施的策略。
|
目标 | 规则的目标。容器组副本将与具有 app=<target> 标签(<target> 为此处选择的值)的容器组调度到同一个节点或不同节点,取决于规则的类型和策略。 |
容器组设置 > 容器组优雅终止
设置容器终止前等待的时间,超时后容器将强制终止。默认取值为 30s。
容器组设置 > 添加元数据
设置容器组的元数据。目前仅支持设置容器组的注解,不支持设置容器组的标签。
点击添加可设置多条注解。
在已创建的注解右侧点击可删除注解。
存储设置
为容器挂载卷、配置字典或保密字典。
参数 | 描述 |
---|---|
添加持久卷声明模板 | 为有状态副本集添加持久卷声明模板。系统将为每个容器组副本单独创建持久卷声明和持久卷,并将持久卷分别挂载到每个容器组副本中的指定容器。仅对有状态副本集可用。 |
挂载卷 | 为容器挂载持久卷、临时卷或 HostPath 卷。 |
挂载配置字典或保密字典 | 将配置字典或保密字典中的数据作为卷挂载到容器。 |
将光标悬停在已添加的卷或持久卷声明模板上,然后在右侧点击可编辑卷或持久卷声明模板的设置。
将光标悬停在已挂载的卷或持久卷声明模板上,然后在右侧点击可删除卷或持久卷声明模板。
存储设置 > 添加持久卷声明模板
通过持久卷声明模板为每个容器组副本单独创建持久卷声明和持久卷,并将持久卷挂载到容器。仅对有状态副本集可用。
参数 | 描述 |
---|---|
PVC 名称前缀 | 通过持久卷声明模板创建的持久卷声明的名称前缀。系统将按 <名称前缀>-<工作负载名称>-<序列号> 的格式自动命名持久卷声明。同一个有状态副本集不同容器组副本的持久卷声明通过 <序列号> 区分。 |
存储类 | 用于创建持久卷声明的存储类。 |
访问模式 | 持久卷的读写模式。
|
卷容量 | 通过持久卷声明模板创建的每个持久卷的容量。 |
挂载方式 | 卷在容器上的挂载方式。
|
挂载路径 | 卷挂载到容器上的路径。点击 |
存储设置 > 挂载卷 > 持久卷
为容器挂载持久卷。用于创建持久卷的持久卷声明必须属于容器所在的项目。
参数 | 描述 |
---|---|
选择持久卷声明 | 选择用于创建持久卷的持久卷声明。该持久卷声明必须属于容器所在项目。如果容器所在的项目中没有可用的持久卷声明,您需要提前创建一个持久卷声明。 |
挂载方式 | 卷在容器上的挂载方式。
|
挂载路径 | 卷挂载到容器上的路径。点击 |
存储设置 > 挂载卷 > 临时卷
为容器挂载临时卷。临时卷具有以下特点:
由系统自动在容器组所在的节点的存储系统中创建。
由系统自动管理,容量上限为节点的存储容量。
无法保存持久化数据,容器组创建时由系统自动创建临时卷,容器组删除时由系统自动删除临时卷。
参数 | 描述 |
---|---|
卷名称 | 临时卷的名称。 |
挂载方式 | 卷在容器上的挂载方式。
|
挂载路径 | 卷挂载到容器上的路径。点击 |
存储设置 > 挂载卷 > HostPath 卷
将容器组所在的节点上的文件或目录挂载到容器上。
不同节点上相同路径的文件或文件夹可能不同,因此不同节点上的容器组副本可能会从 HostPath 卷中读取到不同的数据。
您需要确保被挂载的路径在容器组所在的节点上存在,并且容器组进程具有所需的权限,否则容器组进程将无法从 HostPath 卷上读取数据或向其中写入数据。
参数 | 描述 |
---|---|
卷名称 | HsotPath 卷的名称。 |
主机路径 | 节点上需要挂载的文件或文件夹的路径。 |
挂载方式 | 卷在容器上的挂载方式。
|
挂载路径 | 卷挂载到容器上的路径。点击 |
存储设置 > 挂载配置字典或保密字典
将配置字典或保密字典中的数据作为卷挂载到容器。
参数 | 描述 |
---|---|
选择配置字典/选择保密字典 | 选择当前项目中的配置字典或保密字典。 |
挂载方式 | 设置配置字典或保密字典中的数据在容器上的挂载方式。配置字典和保密字典只支持以只读方式挂载或不挂载。 |
挂载路径 | 设置配置字典或保密字典中的数据挂载到容器上的路径。
|
选择特定键 | 将配置字典或保密字典中的键值对作为文件挂载到容器中,挂载到容器中的文件会随配置字典或保密字典动态更新。点击添加可挂载多个键值对。
|
高级设置
为工作负载管理的容器组指定节点,并设置工作负载的元数据。
参数 | 描述 |
---|---|
选择节点 | 将容器组副本调度到具有指定标签的节点上。
|
添加元数据 | 设置工作负载的标签和注解。
|
集群差异设置
为不同集群中的工作负载基于容器、端口和环境变量进行差异化设置。
参数 | 描述 |
---|---|
容器设置 | 在不同的集群中使用不同的容器设置。在多集群环境下,您可以为指定集群中的工作负载设置不同的容器镜像、容器类型和资源配置等。 |
端口设置 | 为不同集群中的容器设置不同的端口。在多集群环境下,您可以为指定集群中的工作负载设置不同的访问协议、容器端口和工作负载端口等。 |
环境变量 | 为不同集群中的容器设置不同的环境变量。在多集群环境下,您可以为指定集群中的工作负载设置不同的环境变量。 |
反馈
这篇文章对您有帮助吗?
通过邮件接收 KubeSphere 最新的技术博客与产品更新的通知
感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。