第六章 helm 轻松完爆 gitlab

注意:可在我 百度网盘 直接下载 helm、minio 以及修改好的 gitlab 资源包

本系列文章:

第一章:helm 一分钟轻松完爆

第二章:helm 轻松完爆公共仓库

第三章:helm 轻松完爆私有仓库

第四章:helm 轻松完爆 chart

第五章:helm 轻松完爆 release

第六章:helm 轻松完爆 gitlab

目录

1 版本说明

2 下载 gitlab-ce

3 配置 gitlab-ce

4 创建 gitlab-ce 命名空间

5 安装 gitlab-ce

    5.1 修改 deployment 版本

    5.2 修改 deployment 选择符

6 创建 gitlab-ce 存储

7 访问 gitlab-ce


1 版本说明

本文使用 helm 3。helm 仓库信息如下。

helm repo list

clipboard1.png


spacer.gif2 下载 gitlab-ce

mkdir -p /root/helm/charts

cd /root/helm/charts/

helm pull google/gitlab-cespacer.gif


3 配置 gitlab-ce

tar -zxvf gitlab-ce-0.2.2.tgz

vim gitlab-ce/values.yaml

        values.yaml 修改这四项:

image: gitlab/gitlab-ce:10.6.2-ce.0 (默认版本 9.4.1-ce.0 有问题 )

externalUrl: 给 gitlab 配置一个域名。【可选

gitlabRootPassword: 登录密码

serviceType: NodePort

clipboard3.png


4 创建 gitlab-ce 命名空间

kubectl create ns gitlab-ce

clipboard4.pngspacer.gif


5 安装 gitlab-ce

cd /root/helm/charts/

## 第一个 gitlab-ce 是 release 名,第二个是命名空间,第三个是 chart 解压后的目录

helm install gitlab-ce --namespace gitlab-ce gitlab-ce

        如果你的 k8s 版本低于 16,那么恭喜,你的安装过程会很顺利,你可以放心大胆地跳过。如果很不幸,你跟我一样有报错,你有两个选择。A. 请接着往下看。B. 从本文顶部显示的百度网盘中下载我修改好的 gitlab-ce 资源包。

5.1 修改 deployment 版本

clipboard5.pngspacer.gif        错误原因是现有 k8s 不支持 gitlab-ce 的 deployment apiVersion。定位要修改的文件:

## 选项 i 表示大小写不敏感;r 表示支持子目录递归搜索;l 打印出匹配文件

grep -irl "extensions/v1beta1" gitlab-ce | grep deployment

clipboard6.png

        完爆语句如下:

## xargs 把管道符 ‘|’前面命令的输出结果作为后面 sed 命令的输入。

## sed 命令是替换,替换内容是将 extensions/v1beta1 替换为 apps/v1

grep -irl "extensions/v1beta1" gitlab-ce | grep deploy | xargs sed -i 's#extensions/v1beta1#apps/v1#g'

5.2 修改 deployment 选择符(selector)

        再次安装,执行结果依然报错。

clipboard7.png        错误原因是现有 k8s 不支持 gitlab-ce 的 deployment spec。定位要修改的文件:

## 注意:搜索内容变了,不是 extenstions/v1beta1

grep -irl "apps/v1" gitlab-ce | grep deployment

clipboard8.png        依次完爆上述文件:

vim gitlab-ce/templates/deployment.yaml

clipboard9.png

vim gitlab-ce/charts/postgresql/templates/deployment.yaml

clipboard10.png

vim gitlab-ce/charts/redis/templates/deployment.yam

clipboard11.png

        再次执行安装:spacer.gifclipboard12.png

        gitlab-ce 安装成功。但是安装成功不代表运行成功。就跟你买了一个有快速震动功能的高科技生活用品,不安装南孚,它照样不能让你爽是一个道理。


6 创建 gitlab-ce 存储

kubectl get all -n gitlab-ce

clipboard13.png

        发现 pod 一直是 pending 状态。原因是 gitlab-ce 等你为它创建存储;专业地说,是 pvc 没绑定 pv;再文艺一点就是 pvc 不操(c) pv 就不愿意干活。懂了没!clipboard14.png

        查看处于 pending 状态的 pvc。发现它们的喜好有 2 个规格。A 杯(1Gi) 和 C 杯(10Gi)。

kubectl edit pvc -n gitlab-ce gitlab-ce-gitlab-ce-etc

kubectl edit pvc -n gitlab-ce gitlab-ce-gitlab-ce-data

clipboard15.pngclipboard16.png

6.1 创建资源文件

mkdir -p /root/helm/charts/gitlab-ce/manifest/pv

cd /root/helm/charts/gitlab-ce/manifest/pv

touch pv-gitlab-etc.yaml

touch pv-gitlab-data1.yaml

touch pv-gitlab-data2.yaml

touch pv-gitlab-data3.yaml

        资源文件内容大同小异,就是指定规格和存储目录的。这里举一个 pv-gitlab-etc.yaml 的例子,其他 3 个照抄即可。但是你千万要注意 metadata 名称、strorage 大小(一个 1 Gi、3个 10 Gi)hostPath 存储目录,不要重复了。切记,切记。

spacer.gifclipboard17.png

6.2 创建存储目录

        这里为了减少不必要的麻烦,使用了 hostPath 本地存储类型。如果你 k8s 集群有多个工作节点的话,记得每个工作节点都需要创建目录 /data/gitlab/etc、/data/gitlab/data1、/data/gitlab/data2、/data/gitlab/data3

spacer.gifclipboard18.png

6.3 创建 pv

cd /root/helm/charts/gitlab-ce/manifest/pv/

# 注意不要忘记“点号”

kubectl apply -f .

clipboard19.pngspacer.gif        创建完查看 pvc 和 pv。你会发现 pvc 各个都像脱缰的野狗一样,疯狂地奔向 pv。它们云雨地很和谐。

kubectl get pvc -n gitlab-ce

kubectl get pvspacer.gif

clipboard20.png

        查看 gitlab-ce,发现一切岁月静好。

1111.png


spacer.gif7 访问 gitlab-ce

        安装 gitlab-ce 时,我们指定 service 类型是 nodeport。spacer.gifclipboard21.png

        选定集群任意一台主机,查看 service 暴露的外部端口号,我这里是 31215(如上图),发现端口已处于监听状态。

ss -ntlp | grep -i 31215spacer.gif

clipboard22.png

        打开浏览器,输入集群中任意一台主机的 ip 地址和外部端口号,注意不是 80。我这里是 31215。

spacer.gifclipboard23.png

        自此,我们用 helm 轻松完爆了 gitlab 安装。

猜你喜欢

转载自blog.51cto.com/14625168/2456349
今日推荐