玩转Zadig之(一)helm生产环境部署
Zadig 是 KodeRover 公司基于 Kubernetes 自主设计、研发的开源分布式持续交付 (Continuous Delivery) 产品,具备灵活易用的高并发工作流、面向开发者的云原生环境、高效协同的测试管理、强大免运维的模板库、客观精确的效能洞察以及云原生 IDE 插件等重要特性,为工程师提供统一的协作平面。Zadig 内置了 K8s YAML、Helm Chart、主机等复杂场
1. 什么是zadig
Zadig 是 KodeRover 公司基于 Kubernetes 自主设计、研发的开源分布式持续交付 (Continuous Delivery) 产品,具备灵活易用的高并发工作流、面向开发者的云原生环境、高效协同的测试管理、强大免运维的模板库、客观精确的效能洞察以及云原生 IDE 插件等重要特性,为工程师提供统一的协作平面。Zadig 内置了 K8s YAML、Helm Chart、主机等复杂场景最佳实践,适用大规模微服务、高频高质量交付等场景
总结就是
- 开源的分布工持续交付产品
- 面向开发、免运维,协作平台
- 适合微服务交付场景
业务架构
2. 安装
前提:1.16.0 及以上版本的 Kubernetes 集群
2.1 安装模式
第一种模式:All in One 一键安装,适合测试使用,不建议生产环境使用,适用于只有主机没有K8S环境的情况下,All in One会自动安装一个k8s集群,并在此基础上安装zadig
第二种模式:基于现有 Kubernetes 安装
可以使用脚本安装,也可以使用helm安装,安装时可选择服务对外提供的方式,如ip+port的方式,也可通过ingress映射域名对外提供服务,同时,mysql、mongodb和minio也可选择集群安装(可选pvc持久化)也可以选择外部安装的环境
基于定制化安装考虑,这里使用helm安装
2.2 helm安装
Zadig 支持两种访问方式,一种是提供访问域名(ingress),另一种是直接使用 IP + PORT(nodeport) 的方式访问
这里安装,使用域名访问zadig,外部mysql、mongodb(已提前安装或使用云上数据库RDS等),minio这里也不安装,minio需要存储类提供持久化数据,用于存放工作流构建记录、缓存等,这里可以使用外部标准S3协议的产品,如公有云的对象存储(阿里OSS、腾讯cos等)
安装步骤如下
- 安装mysql(可提前创建库dex和user,utf8)、mongodb略,创建阿里云oss bucket略
- 添加 Zadig 官方 Chart 仓库
helm repo add koderover-chart https://koderover.tencentcloudcr.com/chartrepo/chart
- 创建 namespace
kubectl create ns zadig
# 配置环境变量
export NAMESPACE=zadig
export DOMAIN=sre-zadig.test.cn #这里使用域名的方式访问
# 安装
# 参数说明
--set tags.minio=false # 不安装minio
--set tags.ingressControlle=false # 不安装ingresscontrolle
--set tags.mongodb=false # 不安装mongodb,使用外置mongodb
--set connections.mongodb.connectionString=mongodb://*** #mongodb url,修改成实际地址
--set tags.mysql=false # 不安装mysql,使用外置mysql,数据库配置修改成实际地址
# 安装命令如下
helm upgrade --install zadig koderover-chart/zadig --namespace ${NAMESPACE} --version=1.14.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" \
--set tags.minio=false \
--set tags.ingressControlle=false \
--set ingress-nginx.controller.ingressClass=nginx \
--set tags.mongodb=false \
--set connections.mongodb.connectionString=mongodb://*** \
--set connections.mongodb.db=zadig \
--set tags.mysql=false \
--set connections.mysql.host=***:3306 \
--set connections.mysql.auth.user=zadig \
--set connections.mysql.auth.password=***\
--set dex.config.storage.config.host=*** \
--set dex.config.storage.config.port=3306 \
--set dex.config.storage.config.user=zadig \
--set dex.config.storage.config.password=***
- 配置ingress规则
# 默认会创建gateway-proxy svc, type为loadblance,自动绑定公有云lb
# 因此删除默认的gateway-proxy svc,创建type为clusterip的gateway-proxy svc,用于创建Ingress规则时映射使用
# yaml文件如下
apiVersion: v1
kind: Service
metadata:
annotations:
meta.helm.sh/release-name: zadig
meta.helm.sh/release-namespace: zadig
labels:
app: gloo
app.kubernetes.io/managed-by: Helm
gateway-proxy-id: gateway-proxy
gloo: gateway-proxy
service.beta.kubernetes.io/hash: c0567e34286f2d7bb928e9f891905813c7bf515e3c443eee1c4b7356
name: gateway-proxy
namespace: zadig
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 8080
- name: https
port: 443
protocol: TCP
targetPort: 8443
selector:
gateway-proxy: live
gateway-proxy-id: gateway-proxy
sessionAffinity: None
type: ClusterIP
# 手动创建ingress,将zadig通过域名的方式访问,创建过程略
安装完后即可访问zadig了
- 配置对象存储(上面没有安装minio)
登入系统后-系统设置-基础设施-对象存储-新建
保存后即可
以上是helm安装的一个过程了,欢迎大家一起交流学习
更多推荐
所有评论(0)