注意
在现有 Kubernetes 集群上安装 Zadig。可生产使用。
步骤 1:准备 Kubernetes 集群
Kubernetes 集群版本:v1.16~v1.21
Helm v3.0.0 + 版本
自建集群注意事项
- 在安装之前,需要配置 Kubernetes
默认
的 StorageClass,以支持创建 PVC 用于数据持久化 - 配置 kube-dns 服务,以支持服务和 Pod 之间的按名称寻址
步骤 2:准备安装环境
- 需要一台可以正常连通该集群的机器用于执行安装脚本。
- 确保该机器已经安装了 kubectl 客户端 (opens new window) 并且可以使用管理员的权限操作该集群。
步骤 3:下载安装脚本
根据实际情况下载安装脚本并添加可执行权限:
# 快速体验:
curl -LO https://github.com/koderover/zadig/releases/download/v1.7.1/install_quickstart.sh
chmod +x ./install_quickstart.sh
# 生产使用:
curl -LO https://github.com/koderover/zadig/releases/download/v1.7.1/install.sh
chmod +x ./install.sh
提示
下表为安装脚本支持配置的环境变量,安装时会使用默认值进行安装,如果有配置的需求,可以在执行安装脚本之前通过环境变量进行配置。
# 例如:配置 IP 访问地址
export IP=<node external ip>
export PORT=< 30000 - 32767 任一端口>
# 如果出现端口占用情况,换一个端口再尝试
变量名称 | 默认值 | 是否必填 | 说明 |
---|---|---|---|
NAMESPACE | zadig | 否 | Kubernetes 命名空间 |
DOMAIN | 和 IP 二选一 | 访问 Zadig 系统域名 | |
IP | 和 DOMAIN 二选一 | Kubernetes 集群任一节点的外网 IP 地址,用于访问 Zadig 系统 | |
PORT | 使用 IP 访问必填 | 30000 - 32767 任一端口 | |
NGINX_SERVICE_TYPE | NodePort | 否 | 安装脚本自动安装的 Gateway Proxy Service 和 Ingress Controller Service 类型为 NodePort, 可配置为: LoadBalancer |
INGRESS_CLASS | 否 | 若集群内已经配置了 Nginx Ingress 控制器,则设置这个变量为该控制器的名称 | |
STORAGE_SIZE | 20G | 否 | 内置数据库和对象存储各自的数据存储大小 |
INSECURE_REGISTRY | 否 | 若需要使用一个 HTTP 协议的 Registry,则设置该变量为 Registry 的地址 ,如 10.0.0.1:5000 | |
STORAGE_CLASS | 否 | 若集群内支持持久存储卷,可以设置该变量,避免 Zadig 的数据库服务重启后数据丢失 | |
MONGO_URI | 否 | Zadig 业务数据存储,配置多个地址时需要进行转义,例如:mongodb://user:password@8.10.20.20\,8.10.20.30。若不配置,使用安装脚本中内置的单节点 MongoDB | |
MONGO_DB | zadig | 否 | 数据库名称 |
MYSQL_HOST | “” | 否 | Zadig 用户信息数据存储,若不配置,使用安装脚本中内置的单节点 MySQL |
MYSQL_PORT | “” | 否 | MySQL 数据库端口 |
MYSQL_USERNAME | “” | 否 | MySQL 数据库用户名 |
MYSQL_PASSWORD | “” | 否 | MySQL 数据库密码 |
ENCRYPTION_KEY | 否 | 由安装过程生成,用于数据加密解密,第一次安装后请妥善保存。重装系统时需设置 ENCRYPTION_KEY,才能保证之前的数据可以被正确解密 | |
admin@example.com | 否 | 初始用户邮箱 | |
PASSWORD | zadig | 否 | 初始用户密码 |
步骤 4:开始安装
快速体验安装
执行快速体验安装脚本
export IP=<IP>
# Kubernetes 集群任一节点的外网 IP 地址,用于访问 Zadig 系统
# 如果您有自己的域名,可以配置您可用的域名 export DOMAIN = <DOMAIN>
export PORT=<30000~32767 任一端口>
# 如果出现端口占用情况,换一个端口再尝试
./install_quickstart.sh
生产级使用
如果您需要生产级使用,建议配置持久化的数据存储,然后执行正式版安装脚本。
- 方式一:使用外置高可用的 MongoDB 和 MySQL。具体配置如下。
export IP=<IP>
export PORT=<30000~32767 任一端口>
export EMAIL=example@koderover.com
export PASSWORD=zadig
# 配置高可用的 MySQL。
# 安装前需要手动在该 MySQL 实例中创建名为 dex 的 database
export MYSQL_HOST=<MYSQL_HOST>
export MYSQL_PORT=<MYSQL_PORT>
export MYSQL_USERNAME=<MYSQL_USERNAME>
export MYSQL_PASSWORD=<MYSQL_PASSWORD>
# 配置高可用的 MongoDB
export MONGO_URI=<MONGO_URI>
export MONGO_DB=<MONGO_DB>
./install.sh
- 方式二:使用 Zadig 内置的 MongoDB 和 MySQL,同时使用外置存储。具体配置如下。
export IP=<IP>
export PORT=<30000~32767 任一端口>
export EMAIL=example@koderover.com
export PASSWORD=zadig
# 如果集群没有默认的 StorageClass,需通过以下变量指定使用的 StorageClass
export STORAGE_CLASS=<STORAGE_CLASS>
./install.sh
步骤 5:验证安装结果
安装过程预计持续 10 分钟左右,受硬件配置和网络情况影响,不同环境下的时间可能不同, 当看到如图的输出时,说明安装已经完成,届时可以通过命令查看服务启动状态。
kubectl -n zadig get po
步骤 6:访问系统
在安装结果输出中,您可以获得系统的访问地址。
Zadig 卸载
支持使用脚本来一键卸载当前安装的 Zadig 系统,只需执行卸载脚本即可:
#根据实际安装的 namespace 修改
export NAMESPACE=zadig
#根据实际安装的版本,选择对应版本的卸载脚本
curl -SsL https://github.com/koderover/zadig/releases/download/v1.7.1/uninstall.sh |bash