极狐GitLab 对于 Kubernetes 集群的连接和管理是通过 agent 来实现的。也就是说在每个集群上安装一个 agent,然后 agent 和极狐GitLab 实例进行通信来完成极狐GitLab 和 Kubernetes 集群的连接。所以,安装 agent 是首要工作。
必须要有一个可用的 Kubernetes 集群。
本文以 azure 上创建的一个 kubernetes 集群为例来演示:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
aks-agentpool-22596152-vmss000000 Ready <none> 3d7h v1.29.7
aks-agentpool-22596152-vmss000001 Ready <none> 3d7h v1.29.7
aks-userpool-22596152-vmss000000 Ready <none> 3d7h v1.29.7
aks-userpool-22596152-vmss000001 Ready <none> 3d7h v1.29.7
在 Kubernetes 集群上安装好一个 agent,大体需要三步:
agent 一般安装在某个仓库下,因此其配置文件也在某个仓库下,配置文件的名称为 config.yaml
,路径如下:
.gitlab/agents/<agent-name>/config.yaml
注意:需要自定义一个 agent 名称,将上面的 <agent-name> 替换成自定义的 agent 名称。比如使用 jh-gitlab。config.yaml
文件可以先为空,后面再补充内容。
首先找到想要注册 agent 的项目,然后选择运维 --> Kubernetes 集群:
极狐GitLab Kubernetes 集群页面
点击连接集群,选择一个代理:
在极狐GitLab 上注册 Kubernetes agent
然后会出现一个界面,显示 agent 安装的命令:
极狐GitLab Kubernetes agent 安装命令
在命令行中输入以下命令进行 agent 的安装:
$ helm upgrade --install jh-gitlab gitlab/gitlab-agent \
> --namespace gitlab-agent-jh-gitlab \
> --create-namespace \
> --set image.tag=v17.3.0 \
> --set config.token=glagent-McS_oNKq49REYvo_HxTxqe2ozZ3RDzZPzmQU9k2HqQ6LBng8Rg \
> --set config.kasAddress=wss://kas.jihulab.com
Release "jh-gitlab" does not exist. Installing it now.
NAME: jh-gitlab
LAST DEPLOYED: Wed Aug 21 09:47:27 2024
NAMESPACE: gitlab-agent-jh-gitlab
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thank you for installing gitlab-agent.
Your release is named jh-gitlab.
## Changelog
### 1.17.0
- The default replica count has been increased from `1` to `2` to allow a zero-downtime upgrade experience.
You may use `--set replicas=1` to restore the old default behavior.
然后可以在极狐GitLab 项目 --> 运维 --> Kubernetes 集群中进行查看:
极狐GitLab Kubernetes 集群管理页面
这时候说明极狐GitLab 实例和该 Kubernetes agent 建立了连接。
在极狐GitLab 项目 --> 运维 --> 环境下面,添加环境:
添加环境
填写好环境名称、选择极狐GitLab 代理,如果只看特定命名空间(namespace)的信息,可以选择特定的命名空间,如果不选择,则会展示所有命名空间下的信息:
Kubernetes cluster dashboard
可以通过 pod
右侧的 Views logs
按钮对于 pod
的日志进行查看
查看 Kubernetes pod 日志
点击 pod
最右侧的三个点,还可以直接删除 pod
。
在极狐GitLab 页面上删除 Kubernetes pod
这样操作人员就可以直接在极狐GitLab 上对于 Kubernetes 集群进行操作了,而不需要离开极狐GitLab 在命令行终端中进行操作。