Self-Hosted 的 GitLab 中可以集成 Kubernetes,但是官方只提供了 Amazon AWS 和 Google Cloud 的一键部署按钮,没有提供 Microsoft Azure 的一键集成。
因为正好 Azure 还有一些额度,所以研究了一下怎么把 GitLab 连接到 Azure Kubernetes Serveice (AKS) 上。
首先登录 Azure 控制台,确保自己有一个有效的资源组,例如我这里创建了一个名字叫 gitlab-k8s
的资源组,这一步也可以在命令行完成,只不过因为我已经提前创建过了,所以这里补一张图。
接下来进入 Azure Cloud Shell。如果是在非网页版终端上的话就先用 az login
登录,你可能需要先安装 Azure Cloud Shell 的相关工具。
第一步要创建的是基于角色的访问控制(RBAC),启用这个选项可以使 GitLab 在启用 RBAC 的群集上安装应用程序,执行:
az ad sp create-for-rbac --skip-assignment
这个命令会创建一些配置,并允许访问 Azure 的资源。
然后创建 Kubernetes 集群,命令是:
az aks create --resource-group <资源组的名字> --name <集群的名字> --node-count <结点的数量> --generate-ssh-keys
这里资源组的名字换成刚才创建的资源组的名字,集群的名字自己取一个,结点的数量根据自己的情况(以及费用)决定。我把名字命名成 `gitlab-k8s 并决定使用 3 个结点,那么这个命令就是:
az aks create --resource-group gitlab-k8s --name gitlab-k8s --node-count 3 --generate-ssh-keys
这个命令很花时间,耐心等待。
然后执行下面这个命令,集群和资源组的名字同上。
az aks get-credentials -n <集群的名字> -g <资源组的名字>
这时候基本上已经完成了 Azure 上 Kubernetes 的配置了,要把这个服务集成到 GitLab 中。
首先在 GitLab 中填写集群名称,集群名称就是上面 <集群的名字>
。
环境范围默认是 *
,可以根据自己需要修改。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fb6ofFvg-1615627035654)(https://img.jxtxzzw.com/2021/03/13/r1472j.png)]
通过 kubectl
查看 secret
是什么,运行:
kubectl get secrets
记下形如 default-token-<随机字符串>
的内容,然后运行:
kubectl get se