本文主要介绍如何使用 Helm 来安装 Zadig 系统。建议使用官网 Helm 安装命令生成工具 (opens new window)进行安装。
温馨提示
使用 Helm 命令在现有 Kubernetes 集群上安装 Zadig。适合对 Helm 有一定了解的用户。
前置条件
- 安装 Helm v3.5+,这是一个简单的命令行工具,可以从此处 (opens new window)获取。
- Kubernetes 集群版本:v1.16~v1.21。
步骤 1:创建 Namespace
添加 Zadig 官方 Chart 仓库。
helm repo add koderover-chart https://koderover.tencentcloudcr.com/chartrepo/chart
创建 namespace。
kubectl create ns zadig
步骤 2:安装 Zadig
Zadig 支持两种访问方式,一种是提供访问域名,另一种是直接使用 IP + PORT 的方式访问。不同的访问方式需要设置不同的变量,可用参数请参考可选参数列表。
域名访问
请确保您有已备案的域名。
export NAMESPACE=<Zadig 安装的 NAMESPACE>
export DOMAIN=<DOMAIN>
helm upgrade --install zadig koderover-chart/zadig --namespace ${NAMESPACE} --version=1.10.0 --set endpoint.FQDN=${DOMAIN} \
--set global.extensions.extAuth.extauthzServerRef.namespace=${NAMESPACE} \
--set "dex.config.staticClients[0].redirectURIs[0]=http://${DOMAIN}/api/v1/callback,dex.config.staticClients[0].id=zadig,dex.config.staticClients[0].name=zadig,dex.config.staticClients[0].secret=ZXhhbXBsZS1hcHAtc2VjcmV0"
IP + PORT 访问
IP 为 Kubernetes 任一节点的外网可访问 IP。
export NAMESPACE=<Zadig 安装的 NAMESPACE>
export IP=<IP>
export PORT=<PORT>
helm upgrade --install zadig koderover-chart/zadig --namespace ${NAMESPACE} --version=1.10.0 --set endpoint.type=IP \
--set endpoint.IP=${IP} \
--set gloo.gatewayProxies.gatewayProxy.service.httpNodePort=${PORT} \
--set global.extensions.extAuth.extauthzServerRef.namespace=${NAMESPACE} \
--set gloo.gatewayProxies.gatewayProxy.service.type=NodePort \
--set "dex.config.staticClients[0].redirectURIs[0]=http://${IP}:${PORT}/api/v1/callback,dex.config.staticClients[0].id=zadig,dex.config.staticClients[0].name=zadig,dex.config.staticClients[0].secret=ZXhhbXBsZS1hcHAtc2VjcmV0"
Zadig Chart 可选参数列表
Zadig Chart 除了 Zadig 系统外,还内置了一些必要的组件 Ingress Controller、MongoDB、Minio,可以根据您的安装环境实际情况选择是否安装这些组件
Gateway Proxy 可选参数
Key | 说明 | Value 示例 | 默认值 |
---|---|---|---|
gloo.gatewayProxies.gatewayProxy.service.type | Gateway Proxy 服务的暴露方式,可选项为 LoadBalancer 或者 NodePort | LoadBalancer | LoadBalancer |
Ingress Controller 可选参数
- 安装内置 Ingress Controller
Key | 说明 | Value 示例 | 默认值 |
---|---|---|---|
tags.ingressController | 是否安装内置 ingress controller | true | true |
ingress-nginx.controller.service.type | Ingress nginx controller 服务的暴露方式,可选项为 LoadBalancer 或者 NodePort | LoadBalancer | NodePort |
- 不安装内置 Ingress Controller
如果您有自己的 Ingress Controller,可以选择不安装,具体配置参数如下。
Key | 说明 | Value 示例 | 默认值 |
---|---|---|---|
tags.ingressController | 是否安装内置 ingress controller | false | true |
ingress-nginx.controller.ingressClass | ingress controller class | ingress class | zadig-nginx |
MongoDB 可选参数
- 安装内置 MongoDB
Key | 说明 | Value 示例 | 默认值 |
---|---|---|---|
tags.mongodb | 是否安装内置的 MongoDB | true | true |
mongodb.persistence.enabled | MongoDB 持久化开关 | true | true |
mongodb.persistence.size | MongoDB 的存储空间大小 | 20 Gi | 20 Gi |
mongodb.persistence.storageClass | MongoDB 的 PVC 使用的 Storage Class,如果开启持久化的情况下,不提供 Storage Class 和 existingClaim,将使用集群默认的 Storage class。 在此情况下,如果集群没有默认的 Storage Class, 安装将会失败。 | alicloud-disk-efficiency | nil |
mongodb.persistence.existingClaim | 如果安装的 MongoDB 需要使用已经存在的 PVC,使用这个字段指定 Claim Name | myclaim | nil |
- 不安装内置的 MongoDB
如果您有自己的 MongoDB,可以选择不安装 MongoDB,具体配置参数如下。
Key | 说明 | Value 示例 | 默认值 |
---|---|---|---|
tags.mongodb | 是否安装内置的 MongoDB | false | true |
connections.mongodb.connectionString | Zadig 系统业务数据库连接串,配置多个地址时需要进行转义 | mongodb://user:password@8.10.20.20\,8.10.20.30 | mongodb://zadig-mongodb:27017 |
connections.mongodb.db | Zadig 系统使用的默认 DB | zadig | zadig |
Minio 可选参数
- 安装内置 Minio
Key | 说明 | Value 示例 | 默认值 |
---|---|---|---|
minio.persistence.enabled | MinIO 对象存储持久化开关 | true | true |
minio.persistence.size | MinIO 的存储空间大小 | 20 Gi | 20 Gi |
minio.persistence.storageClass | MinIO 的 PVC 使用的 Storage Class,如果开启持久化的情况下,不提供 Storage Class 和 existingClaim,将使用集群默认的 Storage class。 在此情况下,如果集群没有默认的 Storage Class, 安装将会失败。 | storage_class | nil |
minio.persistence.existingClaim | 如果安装的 MinIO 需要使用已经存在的 PVC,使用这个字段指定 Claim Name | my_pvc | nil |
- 不安装内置 Minio
如果您有自己的 S3 对象存储,可以选择不安装 Minio,具体配置参数如下。
后续可在访问系统系统设置
->对象存储
配置,配置过程详见对象存储
Key | 说明 | Value 示例 |
---|---|---|
tags.minio | 是否安装内置的 MinIO 对象存储 | false |
MySQL 可选参数
- 安装内置 MySQL
Key | 说明 | Value 示例 | 默认值 |
---|---|---|---|
tags.mysql | 是否安装内置 MySQL | true | true |
connections.mysql.host | MySQL 连接地址 | zadig-mysql:3306 | zadig-mysql:3306 |
connections.mysql.auth.user | MySQL 用户名 | root | root |
connections.mysql.auth.password | MySQL 密码 | zadig | zadig |
dex.config.storage.config.host | Dex MySQL Host | zadig-mysql | zadig-mysql |
dex.config.storage.config.port | Dex MySQL 端口 | 3306 | 3306 |
dex.config.storage.config.user | Dex MySQL 用户名 | root | root |
dex.config.storage.config.password | Dex MySQL 密码 | zadig | zadig |
- 不安装内置 MySQL
如果您有自己的 MySQL,可以选择不安装内置的 MySQL,版本要求 5.7+。 安装前需要手动在该 MySQL 实例中创建名为
dex
的 database。 具体配置如下。
Key | 说明 | Value 示例 | 默认值 |
---|---|---|---|
tags.mysql | 是否安装内置 MySQL | false | false |
connections.mysql.host | MySQL 连接地址 | 10.0.0.1:3306 | zadig-mysql:3306 |
connections.mysql.auth.user | MySQL 用户名 | root | root |
connections.mysql.auth.password | MySQL 密码 | zadig | zadig |
dex.config.storage.config.host | Dex MySQL Host | 10.0.0.1 | zadig-mysql |
dex.config.storage.config.port | Dex MySQL 端口 | 3306 | 3306 |
dex.config.storage.config.user | Dex MySQL 用户名 | root | root |
dex.config.storage.config.password | Dex MySQL 密码 | zadig | zadig |
其他参数
Key | 说明 | Value 示例 | 默认值 |
---|---|---|---|
kubernetes.server | Zadig 安装集群的 Kubernetes API Server 地址 | https://10.0.0.1:6443 | nil |
init.adminPassword | 初始化系统管理员密码 | zadig | zadig |
init.adminEmail | 初始化系统邮箱 | admin@example.com | admin@example.com |
Helm Charts 卸载
注意:只有当您完全知晓每项操作所带来的结果,再去执行该操作。
helm list -n zadig # 获得 Zadig 的 release name
helm uninstall <release name> -n zadig