kubernetes agent

在 14.5 中从GitLab Premium 迁移到 GitLab Free。
在 GitLab 14.8 中引入了多架构image。第一个多架构版本是v14.8.1. 它支持 AMD64 和 ARM64 架构。
在 GitLab 14.9 中引入了 ARM 架构支持。

要将 Kubernetes 集群连接到 GitLab,您必须在集群中安装代理。
因为14.5的gitlab已经弃用基于证书连接kubernetes的方法

为什么要弃用基于证书连接kubernetes集群的方式

1、依赖于对 Kubernetes API 的直接访问。容易因暴露kubernetes api而导致高风险,
尤其是saas而不是自建的用户。

2、集成中最有价值的功能需要提升权限,通常需要您授予 GitLab 集群管理员权限。
同时,不需要这些权限的功能不能通过更有限的访问来限制。
这意味着您必须授予对一个相当简单的功能的完全访问权限,这可能会成为一种隐患。

3、基于pull的部署开始普及,gitlab需要增强这方面的能力

gitlab agent优势

安全——可以使用常规 Kubernetes RBAC 规则配置代理,从而保持对集群的安全访问
可靠性——通过代码配置您的集群
可扩展性——扩展到多个环境仅需配置多个config.yaml
速度——支持基于pull,支持现代 GitOps 方法
功能性——可以将容器网络安全策略警报和容器扫描结果集成显示到 GitLab
延续性——同样支持基于push,使现有的 GitLab CI/CD 工作流保持正常运行

创建gitlab agent

第一步,在项目repository下创建config.yaml,agent-name可以自己设置,不重复就行
初始config.yaml里面可以没有任何内容,该文件主要用于许可哪些project可以access kubernetes

ci_access:
  projects:
  - id: gitops/g1
  - id: gitops/g2
.gitlab/agents/<agent-name>/config.yaml

在这里插入图片描述

第二步,进入基础设施–kubernetes集群,点击操作,弹出提示,复制提示并运行即可把kubernetes集群agent注册到gitlab。以下是示例,agent-token只显示一次,请复制保存

helm repo add gitlab https://charts.gitlab.io
helm repo update
helm upgrade --install cloud-cnn3-d-share-back-aks01 gitlab/gitlab-agent \
    --namespace gitlab-agent-cloud-cnn3-d-share-back-aks01 \
    --create-namespace \
    --set image.tag=v15.9.0-rc1 \
    --set config.token=xx \
    --set config.kasAddress=wss://kas.jihulab.com

如果是自建gitlab请注意要放行wss websocket协议保持长连接

在这里插入图片描述

这样就是成功创建gitlab的kubernetes agent了

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐