使用Zadig从0到1搭建持续交付平台
大家好,我是乔克,一个爱折腾的YAML工程师。
最近有朋友叫我出一个Zadig的使用教程,说实话,我并不知道该怎么来写,因为所有的东西在官网都有,我本人也是通过学习官网来进行落地实践的。
但是我这人太热情,压不住朋友的再三请求,所以就写一篇我在实际中用到的东西。
本篇文章大纲如下:
什么是Zadig
相信有不少朋友已经听过Zadig,但是有更多的朋友还没有听过,或者说听过但是没仔细去了解过,这里我还是简单介绍一下什么是Zadig。
Zadig是一个持续交付的平台,它集CI、CD、自动化测试于一身,致力于构建一个云原生开源的软件交付平台。
使用Zadig,可以轻松地实现本地联调、微服务并行构建、集成测试与持续部署,开发可以更专注于业务开发、运维也可以更专注于稳定性维护。
部署
说了那么多,下面就进入正题,开始Zadig的使用之旅。
安装
其实Zadig的安装参考官方文档的安装篇就行。但是为了保持文章的完整性,我这里简单介绍一下。
下面是我的环境说明:
Kubernetes:v1.18.8Helm:v3.5.4Linux:CentOS 7.9PS:我这里是基于现有的Kubernetes,使用Helm进行安装部署。安装MySQL
为什么要安装MySQL呢?
使用Zadig默认的安装方式,安装的MySQL是8. 版本,而且有时候死活起不来(踩过坑,没找到起不来的原因),所以我不论是在生产使用还是在测试环境测试都是自己安装的MySQL 5.7的版本,当然,你们需要根据自己的实际情况进行选择。
(1)添加MySQL的Helm repo
$ helm repo add stable https://charts.helm.sh/stable
(2)下载MySQL chart包到本地(我个人习惯,随君选择)
$ helm pull stable/mysql --version 1.6.9
(3)自定义value.yaml文件
mysqlUser: root@%
mysqlPassword: Joker@Zadig123
persistence:
enabled: true
storageClass: "rbd"
accessMode: ReadWriteOnce
size: 50Gi
configurationFiles:
mysql.cnf: |-
[mysql]
default-character-set=utf8
[mysql.server]
default-character-set=utf8
[mysqld_safe]
default-character-set=utf8
[client]
default-character-set=utf8
[mysqld]
character_set_server=utf8
init_connect=SET NAMES utf8
max_connections=3000
slow_query_log=ON
slow_query_log_file=/tmp/mysql-slow.log
long_query_time=1
sql_mode=NO_UNSIGNED_SUBTRACTION,NO_ENGINE_SUBSTITUTION
lower_case_table_names=1
(4)安装MySQL
$ kubectl create ns zadig
$ helm install mysql -n zadig -f my-vaule.yaml .
(5)安装完成过后查看MySQL安装情况
$ kubectl get all -n zadig | grep mysql
pod/mysql-6b64454fd9-nhlqd 2/2 Running 1 57d
service/mysql LoadBalancer 10.233.7.155 192.168.100.81 3306:32703/TCP,9104:32514/TCP 57d
deployment.apps/mysql 1/1 1 1 57d
replicaset.apps/mysql-6b64454fd9 1 1 1 57d安装Zadig
上面已经安装好了MySQL,下面就开始安装Zadig(其他的组件就用Zadig自带的,目前使用起来没发现任何问题)。
(1)添加Zadig Helm Chart。
$ helm repo add koderover-chart https://koderover.tencentcloudcr.com/chartrepo/chart
(2)下载Zadig Chart包 我这里先下载v1.11.0版本,因为后续还准备了一个升级的过程。
$ helm pull koderover-chart/zadig --version 1.11.0
(3)自定义value.yaml文件,主要是修改mysql的配置。
tags:
mysql: false
connections:
mysql:
host: mysql:3306
auth:
user: root
password: Joker@Zadig123
dex:
config:
storage:
type: mysql
config:
host: mysql
port: 3306
database: dex
user: root
password: Joker@Zadig123
ssl:
mode: "false"
(4)安装Zadig 官方指出可以使用域名或者IP访问,我这里采用的是域名。
$ export NAMESPACE=zadig
$ export DOMAIN=zadig.jokerbai.com
$ helm upgrade --install zadig . -f my-value.yaml --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"
(5)查看安装情况。
$ kubectl get pod -n zadig
NAME READY STATUS RESTARTS AGE
aslan-5d6b86ccdf-st7w9 2/2 Running 0 10d
config-7d6654fb8-xcfmk 1/1 Running 0 10d
cron-67f77f54bc-fvrgp 2/2 Running 0 10d
dind-0 1/1 Running 0 49d
discovery-68d76c5bf4-nrl5r 1/1 Running 0 57d
gateway-645958c96c-gnltp 1/1 Running 0 57d
gateway-proxy-5d6bcc677f-njvdk 1/1 Running 0 57d
gloo-7955b997b-br9m2 1/1 Running 0 57d
hub-server-7b5cc9bdb6-t6zkw 1/1 Running 0 10d
mysql-6b64454fd9-nhlqd 2/2 Running 1 57d
nsqlookup-0 1/1 Running 0 57d
nsqlookup-1 1/1 Running 0 57d
nsqlookup-2 1/1 Running 0 57d
opa-69d5c669f6-s784f 1/1 Running 0 57d
picket-55685b94d9-czm7b 1/1 Running 0 10d
podexec-868c677548-mks74 1/1 Running 0 10d
policy-5c5bd995c8-pfxnp 1/1 Running 0 10d
resource-server-c87c4cddd-ptq45 1/1 Running 0 10d
user-77b5585554-n2cm4 1/1 Running 0 10d
warpdrive-55c46595d5-hvkc2 2/2 Running 0 10d
warpdrive-55c46595d5-mn9d8 2/2 Running 0 10d
zadig-dex-d9df5944f-vgdkc 1/1 Running 0 10d
zadig-minio-5c576d44c8-rnkmp 1/1 Running 0 57d
zadig-mongodb-6dfb6f676f-9v5rq 1/1 Running 0 57d
zadig-portal-69d8f946b8-wqrpz 1/1 Running 0 10d
然后可以根据域名http://zadig.jokerbai.com进行访问。
使用账号密码