1、gitlab安装
//参考GitLab cloud native Helm Chart | GitLab
gitlab使用helm安装,完全按照官网的执行步骤,我没有成功,不知什么原因。又参考了其他的配置资料最终安装上了。现把过程记录下来,分享给大家。
前面都和官网步骤一致,只是配置values文件的时候有些区别。
helm repo add gitlab https://charts.gitlab.io/
helm repo update
# helm get values gitlab > gitlab.yaml //这一步我没有执行成功,所以接下来是按照自己的步骤安装了
helm search repo gitlab
helm pull gitlab/gitlab //我这里下载的是下面这个版本
NAME CHART VERSION APP VERSION DESCRIPTION
gitlab/gitlab 5.1.3 14.1.3 Web-based Git-repository manager with wiki and ...
//这是一个比较复杂的版本!
//首先创建namespace
kubectl create ns gitlab
下载到本地后解压,然后修改里面的values.yaml配置文件
a、修改hosts: domain: 为自己的一级域名(shell.com)
b、修改ingress,因为我在安装过程中默认的nginx-ingress controller下载异常,所以我的gitlab就没用nginx-ingress,而是用的之前安装的traefik。这里设置如下
ingress:
configureCertmanager: true
provider: traefik
annotations:
kubernetes.io/ingress.class: "traefik"
enabled: true
tls:
enabled: true
secretName: ingress-cert
path: /
pathType: Prefix
其中设置secretName是为了https访问,因为系统整个架构使用Rustful体系,子系统间API的调用都是使用的https,如果不设置tls话,会出现部分pod启动不起来,或者出现页面打开异常的问题。
ingress-cert是提前部署到gitlab名字空间的secret资源,其证书是针对shell.com域名签证的。
kubectl create secret generic ingress-cert \
--from-file=ca.crt \
--from-file=tls.crt \
--from-file=tls.key \
--type=kubernetes.io/tls -n gitlab
把nginx-ingress关闭,enable:false
c、设置certmanager-issuer: email: 设置为能使用的邮箱地址
然后就是配置子系统了,我在这个全局配置文件中没有找到相关配置项,于是就在charts里修改了
a、设置存储配置
gitlab安装过程中有4个软件需要设置存储,分别是:prometheus、 minio、redis、postgresql
在values.yaml同级目录有1个charts文件夹,里面就是子系统的项目目录,每个子系统里面也都有values.yaml文件,配置相应文件。
在配置文件里找到persistentVolume:storageClass: 其值设置为可以使用sc资源名字。这里使用的ceph存储,其值设置为"ceph-gitlab-rbd”。注意配置文件中的storageClass:项也许不止一个,有的配置文件在文件头部有全局变量设置,也是storageClass:的设置,全局变量设置后,下面可以不做设置,如果没有,文件中所有storageClass:都需要设置。
b、设置gitlab-runner
在gitlab-runner的values.yaml配置文件中,找到privileged设置为true
找到tls项设置secretName
配置完毕,开始安装。
//在values.yaml的上级目录
helm install gitllab gitlab -n gitlab
这个过程有点长。如果没有报错就说明安装成功。
初始用户名密码获取,登录后记着先要修改密码。
//用户名是root
//密码:
kubectl get secret gitlab-gitlab-initial-root-password -n gitlab -ojsonpath='{.data.password}' | base64 --decode ; echo
2、安装harbor
helm repo add harbor https://helm.goharbor.io
helm repo update
helm pull harbor/harbor
修改values.yaml文件
这里修改和gitlab类似,主要是设置hosts、secretName、storageClass 3项配置项的值。在此不做赘述。
安装: helm install harbor harbor -n harbor
初始用户名:admin
密码:Harbor12345
harbor必须设置tls因为它是通过https登录的,否则登录不进去系统。
参考//Harbor docs | Deploying Harbor with High Availability via Helm
3、安装jenkins
//参考https://www.jenkins.io/doc/book/installing/kubernetes/
helm repo add jenkinsci https://charts.jenkins.io
helm repo update
helm pull jenkinsci/jenkins
修改values.yaml。修改内容和上述软件类似。
安装: helm install jenkins jenkins -n jenkins
初始用户名:admin
密码:
kubectl exec --namespace jenkins -it svc/jenkins -c jenkins -- /bin/cat /run/secrets/chart-admin-password && ech