常规应用分发
- 在分布式容器云平台控制台左侧导航栏中选择【应用中心】>【应用管理】,进入应用管理列表页。
- 点击【发布应用】,在跳出的弹窗中完成相关信息配置。
- 配置完成后点击【立即发布】。
创建成功后即可在列表中查看该发布的应用。
差异化应用分发
以下介绍分布式容器云平台CCSE ONE的应用差异化分发管理。
在CCSE ONE分布式应用管理功能中,您可以在应用发布时,通过对所选模板中的指定参数,如:副本数、镜像名称及镜像tag、容器启动命令等)进行分发时覆盖,实现应用在不同的目标集群中差异化分发的能力。
注意应用差异化分发功能当前只支持自定义模板(即yaml类型模板)中的Deployment、StatefulSet、DaemonSet、Job四种工作负载的副本数、容器镜像名称及镜像tag、容器启动命令、容器启动参数进行差异化配置。
具体工作负载及对应支持的差异化参数如下表所示:
参数 | 副本数 | 容器镜像名称及tag | 容器启动命令 | 容器启动参数 |
---|---|---|---|---|
Deployment | 支持 | 支持 | 支持 | 支持 |
StatefulSet | 支持 | 支持 | 支持 | 支持 |
DaemonSet | 不支持 | 支持 | 支持 | 支持 |
Job | 不支持 | 支持 | 支持 | 支持 |
操作步骤
- 在分布式容器云平台控制台左侧导航栏中选择“应用中心”>“模板仓库”,进入模板仓库列表页。
- 点击“添加模板”,选择模板来源为"自定义模板(yaml)"。
在yaml内容中输入以下示例内容并保存。
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deploy
spec:
selector:
matchLabels:
app: my-deploy
replicas: 1
template:
metadata:
labels:
app: my-deploy
spec:
containers:
- name: busybox1
image: registry-crs-huadong1.ctyun.cn/library/busybox:latest
- name: busybox2
image: registry-crs-huadong1.ctyun.cn/library/busybox:latest
command: ["/bin/sh", "-c", "sleep 3600"]
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: my-daemonset
spec:
selector:
matchLabels:
app: my-daemonset
template:
metadata:
labels:
app: my-daemonset
spec:
containers:
- name: busybox
image: registry-crs-huadong1.ctyun.cn/library/busybox:latest
command: ["/bin/sh", "-c", "sleep 3600"]
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: my-statefulset
spec:
serviceName: None
selector:
matchLabels:
app: my-statefulset
replicas: 2
template:
metadata:
labels:
app: my-statefulset
spec:
containers:
- name: busybox
image: registry-crs-huadong1.ctyun.cn/library/busybox:latest
command: ["/bin/sh", "-c", "sleep 3600"]
---
apiVersion: batch/v1
kind: Job
metadata:
name: my-job
spec:
template:
metadata:
labels:
app: my-job
spec:
containers:
- name: busybox
image: registry-crs-huadong1.ctyun.cn/library/busybox:latest
command: ["/bin/echo"]
args: ["hello", "world"]
restartPolicy: OnFailure
- 在分布式容器云平台控制台左侧导航栏中选择“应用中心”>“应用管理”,进入应用管理列表页。
- 点击“应用发布”,在跳出的弹窗中完成相关信息配置:
- 名称:输入应用发布名称。
- 应用模板:选择我们刚刚添加到模板仓库中的yaml-template模板。
- 发布方式:选择"定制模板参数"。
在高级参数中选择应用待部署的目标集群和命名空间,当前支持通过按接入集群名称或按标签选择待部署的目标集群。
选择需要差异化发布的工作负载、容器,对相关参数进行修改。如下图对名为my-deploy、类型为Deployment的副本数和负载中名为busybox2的容器的启动命令进行更改:
- 配置完成后点击“立即发布”。创建成功后即可在列表中查看该发布的应用。
集群级污点与容忍
以下介绍分布式容器云平台CCSE ONE的应用基于容忍调度分发管理。
在CCSE ONE分布式容器云平台中,您可以给接入集群配置"污点",避免普通应用调度到不合适的集群中;在应用发布时,给应用配置"容忍",实现应用基于污点和容忍调度到特定集群的能力。
污点的属性和取值如下表所示:
污点key | 污点value | 污点策略 | |
---|---|---|---|
取值可否为空 | 不可以 | 可以 | 不可以 |
取值 | 以字母或数字开始和结束,并且中间可以包含连字符- | 以字母或数字开始和结束,并且中间可以包含连字符- | NoSchedulePreferNoSchedule |
容忍的属性和取值如下表所示:
容忍key | 容忍操作符 | 容忍value | 容忍策略 | |
---|---|---|---|---|
取值可否为空 | 不可以 | 不可以 | 可以 | 不可以 |
取值 | 以字母或数字开始和结束,并且中间可以包含连字符- | EqualExists | 以字母或数字开始和结束,并且中间可以包含连字符- | NoSchedulePreferNoSchedule |
注意当前容忍操作符支持Equal和Exist:
容忍操作符为Equal时,容忍的key、value和策略需要与污点的key、value和策略保持一致,该应用才能容忍该集群污点,从而运行在该集群中。
容忍操作符为Exist时,只要容忍的key、策略与接入集群污点的key、策略保持一致,不管污点的value为何值,该应用都能容忍该集群污点,从而运行在该集群中。
当前污点和容忍的策略支持NoSchedule和PreferNoSchedule:
NoSchedule:如果待部署的目标集群配置了污点,而应用没有配置对应的容忍,则应用不允许部署在该集群中。
PreferNoSchedule:如果待部署的目标集群配置了污点,而应用没有配置对应的容忍,则应用尽量不会部署在该集群中,若找不到其余可调度的集群时,仍会部署在带有该污点的目标集群中。
操作步骤
- 接入集群配置污点。
- 在分布式容器云平台控制台左侧导航栏中选择“分布式集群”>“接入集群”,进入接入集群列表页。
- 点击接入集群名称,进入接入集群基本信息页面。
- 点击"添加污点",输入污点key、value和策略。
- 点击"确定"进行保存。
- 应用不配置容忍。
- 在分布式容器云平台控制台左侧导航栏中选择“应用中心”>“应用管理”,进入应用管理列表页。
- 点击“应用发布”,在跳出的弹窗中完成相关信息配置。
- 名称:输入应用发布名称。
- 应用模板:选择我们刚刚添加到模板仓库中的yaml-template模板。
- 发布方式:选择"全量发布"。
在高级参数中,不添加容忍,保持应用的容忍为空。选择应用待部署的目标集群为上述配置了污点的集群:
可以看到应用状态一直为Pending,无法运行在带有污点的集群中。
- 应用配置容忍。
- 在应用列表中选择该应用进行升级更新,在高级参数中给应用添加容忍,设置容忍的key、value、策略跟接入集群的污点保持一致,操作符选择Equal。
- 保存后点击立即发布,可以看到应用正常运行在带有污点的集群中。
- 在应用列表中选择该应用进行升级更新,在高级参数中给应用添加容忍,设置容忍的key、value、策略跟接入集群的污点保持一致,操作符选择Equal。