基于 Helm 命令安装

本文主要介绍如何使用 Helm 来安装 Zadig 系统。建议使用官网 Helm 安装命令生成工具基于 Helm 命令安装 - 图1 (opens new window)进行安装。

温馨提示

使用 Helm 命令在现有 Kubernetes 集群上安装 Zadig。适合对 Helm 有一定了解的用户。

前置条件

  1. 安装 Helm v3.5+,这是一个简单的命令行工具,可以从此处基于 Helm 命令安装 - 图2 (opens new window)获取。
  2. 若需要使用 Zadig 内置的存储组件(MySQL / MongoDB / MinIO)并开启持久化,在安装之前,需要配置 Kubernetes 默认的 StorageClass。
  3. 受限于部分类型集群网络插件及其配置,Service 的后端 Pod 可能无法通过该 Service 访问自身,在安装之前请确保集群中不存在此问题。
  4. Kubernetes 集群版本:v1.16~v1.26。

步骤 1:创建 Namespace

添加 Zadig 官方 Chart 仓库。

  1. helm repo add koderover-chart https://koderover.tencentcloudcr.com/chartrepo/chart

创建 namespace。

  1. kubectl create ns zadig

步骤 2:安装 Zadig

Zadig 支持两种访问方式,一种是提供访问域名,另一种是直接使用 IP + PORT 的方式访问。不同的访问方式需要设置不同的变量,可用参数请参考可选参数列表

域名访问

请确保你有已备案的域名。 请将流量转发到 gateway-proxy 服务。

  1. export NAMESPACE=<Zadig 安装的 NAMESPACE>
  2. export DOMAIN=<DOMAIN>
  3. helm upgrade --install zadig koderover-chart/zadig --namespace ${NAMESPACE} --version=1.18.0 --set endpoint.FQDN=${DOMAIN} \
  4. --set global.extensions.extAuth.extauthzServerRef.namespace=${NAMESPACE} \
  5. --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。

  1. export NAMESPACE=<Zadig 安装的 NAMESPACE>
  2. export IP=<IP>
  3. export PORT=<PORT>
  4. helm upgrade --install zadig koderover-chart/zadig --namespace ${NAMESPACE} --version=1.18.0 --set endpoint.type=IP \
  5. --set endpoint.IP=${IP} \
  6. --set gloo.gatewayProxies.gatewayProxy.service.httpNodePort=${PORT} \
  7. --set global.extensions.extAuth.extauthzServerRef.namespace=${NAMESPACE} \
  8. --set gloo.gatewayProxies.gatewayProxy.service.type=NodePort \
  9. --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 系统外,还内置了一些必要的组件 MySQL、MongoDB、MinIO,可以根据你的安装环境实际情况选择是否安装这些组件

Gateway Proxy 参数列表

Key说明Value 示例默认值
gloo.gatewayProxies.gatewayProxy.service.typeGateway Proxy 服务的暴露方式,可选项为 LoadBalancer、NodePort、ClusterIPLoadBalancerLoadBalancer

MongoDB 参数列表

  • MongoDB 连接参数
Key说明Value 示例默认值
connections.mongodb.connectionStringMongoDB 连接串mongodb://root:zadig@kr-mongodb:27017mongodb://root:zadig@kr-mongodb:27017
connections.mongodb.dbZadig 所使用的 MongoDB 的 DBzadigzadig
  • 内置 MongoDB 安装参数
Key说明Value 示例默认值
tags.mongodb是否安装内置的 MongoDBtruetrue
mongodb.persistence.enabledMongoDB 持久化开关truetrue
mongodb.persistence.sizeMongoDB 的存储空间大小20 Gi20 Gi
mongodb.rootPassword内置 MongoDB 的 root 用户密码zadignil
mongodb.persistence.existingClaim如果安装的 MongoDB 需要使用已经存在的 PVC,使用这个字段指定 Claim Namemyclaimnil
  • 不安装内置的 MongoDB

如果你有自己的 MongoDB,可以选择不安装内置的 MongoDB,版本要求 3.4 及以上,具体配置参数如下。

Key说明Value 示例默认值
tags.mongodb是否安装内置的 MongoDBfalsetrue
connections.mongodb.connectionStringZadig 系统业务数据库连接串,配置多个地址时需要进行转义mongodb://user:password@8.10.20.20\,8.10.20.30mongodb://zadig-mongodb:27017
connections.mongodb.dbZadig 系统使用的默认 DBzadigzadig

MinIO 参数列表

提示

如果有自己的 S3 对象存储,可以选择不安装 MinIO。在 Zadig 安装完后成访问 系统设置 -> 对象存储 来配置即可,配置过程详见对象存储

  • 内置 MinIO 安装参数
Key说明Value 示例默认值
tags.minio是否安装内置的 MinIOtruetrue
minio.persistence.enabledMinIO 对象存储持久化开关truetrue
minio.persistence.sizeMinIO 的存储空间大小20 Gi20 Gi
minio.persistence.storageClassMinIO 的 PVC 使用的 Storage Class,如果开启持久化的情况下,不提供 Storage Class 和 existingClaim,将使用集群默认的 Storage class。 在此情况下,如果集群没有默认的 Storage Class, 安装将会失败。storage_classnil
minio.persistence.existingClaim如果安装的 MinIO 需要使用已经存在的 PVC,使用这个字段指定 Claim Namemy_pvcnil

MySQL 参数列表

  • MySQL 连接参数
Key说明Value 示例默认值
connections.mysql.hostMySQL连接信息kr-mysql:3306kr-mysql:3306
connections.mysql.auth.userMySQL 用户名rootroot
connections.mysql.auth.passwordMySQL 密码zadigzadig
connections.mysql.db.userZadig 用户系统使用的 DBuseruser
connections.mysql.db.dexZadig 第三方连接器 Dex 使用的 DBdexdex
dex.config.storage.config.databaseDex 系统所使用的 DB,和 connections.mysql.db.dex 的值保持一致dexdex
dex.config.storage.config.hostDex 系统所使用的 MySQL Hostzadig-mysqlzadig-mysql
dex.config.storage.config.portDex 系统所使用的 MySQL 端口33063306
dex.config.storage.config.userDex 系统所使用的 MySQL 用户名rootroot
dex.config.storage.config.passwordDex 系统所使用的 MySQL 密码zadigzadig
  • 内置 MySQL 安装参数
Key说明Value 示例默认值
tags.mysql是否安装内置 MySQLtruetrue
mysql.rootPasswordMySQL 密码zadigzadig
mysql.persistence.enabled是否开启持久化存储truetrue
mysql.persistence.size持久化存储 PVC 的大小20Gi20Gi

如果自己提供 MySQL

在安装 Zadig 系统之前,请手动创建 connections.mysql.db.dex 所指定的 Database,以确保 Zadig 系统的正常安装

其他参数

Key说明Value 示例默认值
kubernetes.serverZadig 安装集群的 Kubernetes API Server 地址https://10.0.0.1:6443nil
gloo.k8s.clusterName安装 Zadig 的集群名称,若修改过集群名称,需要设置此参数cluster.localcluster.local

Helm Charts 卸载

注意:只有当你完全知晓每项操作所带来的结果,再去执行该操作。

  1. helm list -n zadig # 获得 Zadig 的 release name
  2. helm uninstall <release name> -n zadig