使用极狐GitLab 连接 Kubernetes 集群
History
- 在极狐GitLab 15.10 中,Flux 作为 GitOps 解决方案被推荐。
你可以将你的 Kubernetes 集群与极狐GitLab 连接,以便部署、管理和监控你的云原生解决方案。
要将 Kubernetes 集群连接到极狐GitLab,你必须首先在集群中安装一个代理。
代理在集群中运行,你可以使用它来:
- 与处于防火墙或 NAT 后面的集群进行通信。
- 实时访问集群中的 API 端点。
- 推送有关集群中发生的事件的信息。
- 启用 Kubernetes 对象的缓存,这些对象会以非常低的延迟保持最新。
你必须为每个你想连接到极狐GitLab 的集群部署一个单独的代理。代理设计为具有强大的多租户支持。为了简化维护和运营,你应该每个集群仅运行一个代理。
代理始终在极狐GitLab 项目中注册。代理注册和安装后,代理连接到集群可以与其他项目、群组和用户共享。这种方法意味着你可以直接从极狐GitLab 管理和配置你的代理实例,并且你可以将单个安装扩展到多个租户。
接收代理
- Tier: 旗舰版
- Offering: 私有化部署
History
- 引入于极狐GitLab 17.4。
接收代理允许极狐GitLab 集成到无法建立网络连接到极狐GitLab 实例的 Kubernetes 集群,但可以由极狐GitLab 连接。例如,当:
- 极狐GitLab 在私有网络或防火墙后运行,并且只能通过 VPN 访问。
- Kubernetes 集群由云提供商托管,但暴露在互联网上或可以从私有网络访问。
当启用此功能时,极狐GitLab 使用提供的 URL 连接到代理。你可以同时使用代理和接收代理。
极狐GitLab 功能支持的 Kubernetes 版本
极狐GitLab 支持以下 Kubernetes 版本。如果你想在 Kubernetes 集群中运行极狐GitLab,你可能需要不同版本的 Kubernetes:
- 对于 Helm Chart。
- 对于 GitLab Operator。
你可以随时将你的 Kubernetes 版本升级到支持的版本:
- 1.31(支持在极狐GitLab 版本 18.7 发布或当 1.34 成为支持版本时结束)
- 1.30(支持在极狐GitLab 版本 18.2 发布或当 1.33 成为支持版本时结束)
- 1.29(支持在极狐GitLab 版本 17.10 发布或当 1.32 成为支持版本时结束)
极狐GitLab 旨在支持新的小版本的 Kubernetes 在初次发布后三个月内。极狐GitLab 在任何时候至少支持三个生产就绪的 Kubernetes 小版本。
当 Kubernetes 的新版本发布时,我们将:
- 在大约四周内更新此页面,包含我们早期的烟雾测试结果。
- 如果我们预计支持新版本的发布有延迟,我们将在大约八周内更新此页面,包含预计的极狐GitLab 支持版本。
安装代理时,请使用与你的 Kubernetes 版本兼容的 Helm 版本。其他版本的 Helm 可能无法工作。有关兼容版本的列表,请参阅 Helm 版本支持政策。
当我们放弃支持仅支持已弃用 API 的 Kubernetes 版本时,可以从极狐GitLab 代码库中移除对已弃用 API 的支持。
某些极狐GitLab 功能可能在此处未列出的版本上工作。
Kubernetes 部署工作流程
你可以从两种主要工作流程中进行选择。推荐使用 GitOps 工作流程。
GitOps 工作流程
极狐GitLab 推荐使用 Flux for GitOps。要开始使用,请参阅 教程:设置 Flux for GitOps。
极狐GitLab CI/CD 工作流程
在 CI/CD 工作流程中,你配置极狐GitLab CI/CD 使用 Kubernetes API 查询和更新你的集群。
此工作流程被认为是 推送型 的,因为极狐GitLab 从极狐GitLab CI/CD 向你的集群推送请求。
使用此工作流程:
- 当你有流水线驱动的流程时。
- 当你需要迁移到代理,但 GitOps 工作流程不支持你的用例时。
此工作流程具有较弱的安全模型。你不应该在生产部署中使用 CI/CD 工作流程。
代理连接技术细节
代理打开一个双向通道到 KAS 用于通信。此通道用于代理和 KAS 之间的所有通信:
- 每个代理可以保持最多 500 个逻辑 gRPC 流,包括活动和空闲流。
- gRPC 流使用的 TCP 连接数量由 gRPC 本身决定。
- 每个连接的最大生命周期为两小时,宽限期为一小时。
- 在 KAS 前面的代理可能会影响连接的最大生命周期。在 JihuLab.com 上,这是两小时。宽限期是最大生命周期的 50%。
Kubernetes 集成术语表
此术语表提供了与极狐GitLab Kubernetes 集成相关术语的定义。
术语 | 定义 | 范围 |
---|---|---|
极狐GitLab Kubernetes 代理 | 整体产品,包括相关功能和基础组件 agentk 和 kas。 | 极狐GitLab,Kubernetes,Flux |
agentk | 集群端组件,维护与极狐GitLab 的安全连接,用于 Kubernetes 管理和部署自动化。 | 极狐GitLab |
极狐GitLab Kubernetes 代理服务器 (kas) | 极狐GitLab 的极狐GitLab 端组件,处理 Kubernetes 代理集成的操作和逻辑。管理极狐GitLab 和 Kubernetes 集群之间的连接和通信。 | 极狐GitLab |
拉取型部署 | 一种部署方法,其中 Flux 检查 Git 存储库中的更改并自动将这些更改应用到集群。 | 极狐GitLab,Kubernetes |
推送型部署 | 一种部署方法,其中更新从极狐GitLab CI/CD 流水线发送到 Kubernetes 集群。 | 极狐GitLab |
Flux | 一个开源 GitOps 工具,与代理集成用于拉取型部署。 | GitOps,Kubernetes |
GitOps | 一套实践,涉及使用 Git 进行版本控制和协作以管理和自动化云和 Kubernetes 资源。 | DevOps,Kubernetes |
Kubernetes 命名空间 | Kubernetes 集群中的逻辑分区,用于在多个用户或环境之间划分集群资源。 | Kubernetes |