集群管理
本文介绍如何在 Zadig 系统上进行多集群管理。Zadig 基于本地集群安装,同时支持外部多个 K8s 集群资源的接入和使用。
添加集群
注意
需要保证添加的集群可以访问到 Zadig 所在的集群
访问 系统设置
-> 集群管理
,点击 新建
添加集群。
参数说明:
连接方式
:支持代理连接
和直接连接
两种方式,具体操作请参考 代理连接方式、直接连接方式。名称
:集群名称只支持小写字母、数字和中划线。集群提供商
:支持阿里云 ACK
、腾讯云 TKE
、腾讯云 TKE Serverless
企业版、华为云 CCE
、Amazon EKS
和其他自建的 Kubernetes 集群。描述
: 该集群的用途描述信息。生产集群
企业版:开启后,构建/测试/代码扫描/通用任务/自定义任务/灰度发布/istio发布/蓝绿发布/金丝雀发布/更新 K8s YAML 任务/创建环境选择集群等均显示是否为生产。KubeConfig
:待接入集群的 KubeConfig 配置文件内容,使用直接连接
方式时需填写。
创建集群时可设置高级配置,也可以在创建完成后再修改。高级配置说明:
指定项目范围
:指定该集群可被哪些项目使用,默认为创建集群时,系统当前全部项目。Dind 资源配置
:设置 Dind 的资源规格,参考 Dind 资源配置。
代理连接
在外接集群中安装 Agent,适用场景:外接集群可以访问 Zadig 所在的集群。
选择代理连接
方式填写集群基本信息后,在待接入集群中执行 Agent 安装脚本,如图所示:
脚本执行完毕后,刷新集群列表查看集群状态,状态正常即为接入成功。
直接连接
需要外接集群的 admin 权限,在 Zadig 系统中配置其 KubeConfig,适用场景:Zadig 所在的集群可以访问外接集群。
选择直接连接
方式填写集群基本信息及外接集群的 KubeConfig 内容后保存即可。
基本操作
断开
:断开集群操作并不会删除已经在集群中创建的环境资源,如需清理,请手动删除。集群断开后,可通过再次执行 Agent 安装脚本接入。编辑
:可修改集群的基本信息及高级配置。删除
:删除集群操作并不会删除已经在集群中创建的环境资源,如需清理,请手动删除。更新 Agent
:更新 Zadig 系统在该集群中安装的 Agent,即:koderover-agent 命名空间下的 dind、koderover-agent-node-agent 和 resource-server 资源。
设置调度策略
点击编辑
,可设置该集群资源的调度策略。以执行工作流任务为例对不同的策略说明如下:
随机调度
:不需要指定标签,工作流任务将被随机调度在集群的任意节点上执行。优先调度
:需要指定标签,工作流任务将被优先调度到符合标签的节点上执行,若节点资源无法满足调度需求,则该任务会被分配给其他节点。强制调度
企业版:需要指定标签,工作流任务将被调度到符合标签的节点上执行。配置容忍度
企业版:在文本框内可以进行容忍度配置,具体参数如下:
— key: "key1"
operator: "Equal"
value: "value1"
effect: "NoSchedule"
容忍度(Toleration) 是应用于 Pod 上的。容忍度允许调度器调度带有对应污点的 Pod。
污点和容忍度互配合,可以更精细的将 Pod 分配到目标节点上。 每个节点上都可以应用一个或多个污点,如果 Pod 不能容忍这些污点,则不会被部署在该节点。
注意
容忍度允许调度并不保证调度成功,除容忍度以外,调度器也会评估其他参数。
详情可见:污点和容忍度 (opens new window)
缓存资源配置
可按需对不同集群资源配置缓存策略。
使用对象存储
将会使用系统默认对象存储来缓存资源,可在对象存储管理中设置默认对象存储。
使用集群存储
可使用集群中已有的存储资源或按需动态创建资源。
选择存储资源
动态生成资源
:选择文件存储类型的 StorageClass 并指定动态生成的存储空间大小,注意:若使用腾讯云 cbs 作为 StorageClass,则有效的存储空间大小范围 (GiB):[10, 32000]。使用现有存储资源
:选择已有存储资源,注意:创建该存储资源的 PVC 中,accessModes 需要是 ReadWriteMany。
缓存目录规则
可设置缓存资源在集群存储中的存储目录相对路径规则,实现共享缓存,或者根据不同的项目/工作流/服务组件独享缓存。支持以下变量:
$PROJECT:项目名称
$WORKFLOW:工作流名称
$SERVICE_MODULE:服务组件名称 (测试工作流中无此参数,对于测试工作流的缓存,该变量将被忽略)
举例说明如下:
缓存目录规则 | 说明 |
---|---|
$PROJECT/$WORKFLOW/$SERVICE_MODULE | 为同一项目同一工作流中的服务组件单独设置独享缓存,不同服务组件之间互不干扰 |
$PROJECT/$WORKFLOW | 同一项目下的同一工作流共享缓存;不同工作流之间独享缓存互不干扰 |
$PROJECT/$SERVICE_MODULE | 同一项目下的相同服务组件共享缓存 |
$PROJECT | 同一项目共享缓存;不同项目的缓存资源将存储在集群 PVC 的不同目录中,彼此独享缓存互不干扰 |
cache | 缓存资源将存储在集群 /<PVC 根目录>/cache 目录下,所有项目共享使用缓存 |
无 | 缓存资源将存储在集群 /<PVC 根目录> 下 ,所有项目共享使用缓存 |
更多信息
若修改了集群的缓存资源配置(比如将对象存储
修改为集群存储
,或者动态生成资源
修改为使用现有存储资源
),则修改之前已缓存的资源在修改后将不再生效,会在新的存储资源下重新开始缓存。
Dind 资源配置
企业版
配置集群的 Dind 资源。
副本数量
:默认为 1,可按需调整。设置多副本后,同一个服务的构建任务会被尽可能调度到同一个 Dind 实例,不同服务的构建任务会被尽可能打散调度到不同的 Dind 实例,避免因单个 Dind 实例承载过多的构建任务而增加失败概率。资源限制
:CPU 默认为 4000m,Memory 默认为 8192Mi。存储资源
:可用于存储镜像缓存等。当指定集群存储资源时,选择文件存储类型的 StorageClass 并指定动态生成的存储空间大小。
注意:若使用腾讯云 cbs 作为 StorageClass,则有效的存储空间大小范围 (GiB):[10, 32000]
集群使用
- 在 Zadig 系统中接入外部集群后,便可以在该集群上创建新环境,并使用工作流对新环境进行更新操作,环境操作可参考 创建环境。