GitLab Agent for Kubernetes 是一个活跃的集群内组件,用于解决GitLab<->Kubernetes 集成任务;同时 GitLab Kubernetes Agent 是 gitLab 的组件之一,从而可以实现GiLab CI/CD 访问 k8s 集群的能力。
GitLab Agent for Kubernetes 由两个通信部分实现:在集群中运行的 GitLab 代理 (agentk) 和在 GitLab 端运行的 GitLab 代理服务器 (gitlab-kas)。
参考链接:
修改gitlab配置文件/etc/gitlab/gitlab.rb
gitlab_kas['enable'] = true
执行gitlab-ctl reconfigure加载配置
.gitlab/agents/jihu/config.yaml
定义 k8s 资源清单
选择项目
-> 左侧导航拉面基础设施
-> Kubernetes 集群
-> 连接集群
-> 点击 Select an Agent 下拉框,选择在配置文件里定义的 Agent 名称;
就发现,当部署完成后,会看到按照预期的方式将 已经定义的资源清单部署到k8s集群中。
helm repo add gitlab https://charts.gitlab.io
helm repo update
helm upgrade --install test gitlab/gitlab-agent \
--namespace gitlab-agent-test \
--create-namespace \
--set image.tag=v16.4.0 \
--set config.token=glagent-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
--set config.kasAddress=wss://kube.bdeet.top/-/kubernetes-agent/
ms-1 5 -> 1
ms-2 1 -> 0
ms-3 3 -> 0
ms-4 2 -> 0
通过上面的简单示例演示,我们可以想象下,基于IAC(基础设施即代码)的方式,以gitops的方式管理我们的资源清单文件,最后通过发布到预期的环境也是一种很好的选择,且这种方式对于我们的环境具有很强的移植性,因为只要有了资源清淡,我们就可以随时随地的完整一套环境的部署。