0%

修复在Kubernetes上部署的Gitlab的主机名

我是使用静态Pod方式部署的Gitlab,但是在部署完以后,主机名竟是Pod的名称,诸如gitlab-sanlea之类的,这样的主机名并不能正确访问,而且在代码库管理的时候很麻烦,需要将gitlab-sanlea改成Pod的IP或者Service的IP,非常不方便。

首先要跳到Gitlab的配置目录,一般情况下,在部署的时候按gitlab的官方文档,都会建议将config目录以volume的方式挂载,所以要进去那个目录,例如/deploy/data/gitlab/config,然后找到gitlab.rb文件,找到external_url,将其改成Service的IP或者域名,或者是Pod的IP,然后保存,例如:

1
external_url 'http://gitlab.infra.svc.cluster.local'

修改上述配置后,需要重新配置gitlab,这时并不是重启就可以的,需要在容器中执行命令才能行,怎么才能在Kubernetes Pod上执行一个命令呢?下面就是一个例子:

1
kubectl exec -c gitlab -n infra gitlab-sanlea gitlab-ctl reconfigure

上面的命令是,在名为gitlab-sanlea的Pod上执行gitlab-ctl reconfigure命令,-n infra指定命名空间,-c gitlab指定Pod里的容器。

执行上面的命令后,代码库的git仓库地址就正常了。