- 查找基于证书的集群
- 迁移通用部署
- 从极狐GitLab 管理的集群迁移到 Kubernetes 资源
- 从 Auto DevOps 迁移
- 从极狐GitLab 管理的应用程序迁移
- 迁移集群管理项目
- 迁移集群监控功能
{{< details >}}
- Tier: 基础版,专业版,旗舰版
- Offering: JihuLab.com,私有化部署
{{< /details >}}
要将您的 Kubernetes 集群连接到极狐GitLab,您可以使用:
在极狐GitLab 14.5 中,基于证书的集成已被弃用。弃用计划如下所述:
- 针对 JihuLab.com 客户。
- 针对 极狐GitLab 私有化部署客户。
如果您正在使用基于证书的集成,应尽快迁移到其他工作流。
通常情况下,要迁移依赖极狐GitLab CI/CD 的集群,您可以使用 CI/CD 工作流。此工作流使用代理连接到您的集群。代理:
- 不暴露于互联网。
- 不需要具有极狐GitLab 的完整
cluster-admin
访问权限。
{{< alert type=”note” >}}
基于证书的集成曾用于流行的极狐GitLab 功能,如极狐GitLab 管理的应用程序、极狐GitLab 管理的集群和 Auto DevOps。
{{< /alert >}}
查找基于证书的集群
您可以使用专用 API,在极狐GitLab 实例或群组中查找所有基于证书的集群,包括子群组和项目。使用群组 ID 查询 API 会返回在提供的群组内或以下定义的所有基于证书的集群。
在父群组中定义的集群在这种情况下不会被返回。这种行为帮助群组所有者查找他们需要迁移的所有集群。
禁用的集群也会被返回,以避免意外遗留集群。
{{< alert type=”note” >}}
集群发现 API 不适用于个人命名空间。
{{< /alert >}}
迁移通用部署
要迁移通用部署:
- 安装 极狐GitLab Kubernetes 代理。
- 遵循 CI/CD 工作流来授权代理访问群组和项目,或通过模拟来保护访问。
- 在左侧边栏中,选择 运维 > Kubernetes 集群。
- 从基于证书的集群部分,打开服务相同环境范围的集群。
- 选择 详情 选项卡并关闭集群。
从极狐GitLab 管理的集群迁移到 Kubernetes 资源
{{< details >}}
- Tier: 专业版,旗舰版
{{< /details >}}
使用极狐GitLab 管理的集群时,极狐GitLab 为每个分支创建单独的服务帐户和命名空间,并使用这些资源进行部署。
现在,您可以使用 极狐GitLab 管理的 Kubernetes 资源来自助服务资源,并增强安全控制。
使用极狐GitLab 管理的 Kubernetes 资源,您可以:
- 在不进行人工干预的情况下安全地设置环境。
- 在不赋予开发人员集群管理权限的情况下控制资源创建和访问。
- 在开发人员创建新项目或环境时,为开发人员提供自助服务功能。
- 允许开发人员在专用或共享命名空间中部署测试和开发版本。
先决条件:
- 安装 极狐GitLab Kubernetes 代理。
- 授权代理访问相关项目或群组。
- 检查证书集群集成页面中的 每个环境的命名空间 复选框状态。
要从极狐GitLab 管理的集群迁移到极狐GitLab 管理的 Kubernetes 资源:
- 如果您正在迁移现有环境,请通过 Kubernetes 仪表板或 环境 API为环境配置代理。
-
配置代理以在您的代理配置文件中开启资源管理:
ci_access: projects: - id: <your_group/your_project> access_as: ci_job: {} resource_management: enabled: true groups: - id: <your_other_group> access_as: ci_job: {} resource_management: enabled: true
-
在
.gitlab/agents/<agent-name>/environment_templates/default.yaml
下创建一个环境模板。检查证书集群集成页面中的 每个环境的命名空间 复选框状态。如果 每个环境的命名空间 已选中,请使用以下模板:
objects: - apiVersion: v1 kind: Namespace metadata: name: {{ .project.slug }}-{{ .project.id }}-{{ .environment.slug }} - apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: bind-{{ .agent.id }}-{{ .project.id }}-{{ .environment.slug }} namespace: {{ .project.slug }}-{{ .project.id }}-{{ .environment.slug }} subjects: - kind: Group apiGroup: rbac.authorization.k8s.io name: gitlab:project_env:{{ .project.id }}:{{ .environment.slug }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: admin
如果 每个环境的命名空间 未选中,请使用以下模板:
objects: - apiVersion: v1 kind: Namespace metadata: name: {{ .project.slug }}-{{ .project.id }} - apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: bind-{{ .agent.id }}-{{ .project.id }}-{{ .environment.slug }} namespace: {{ .project.slug }}-{{ .project.id }} subjects: - kind: Group apiGroup: rbac.authorization.k8s.io name: gitlab:project_env:{{ .project.id }}:{{ .environment.slug }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: admin
- 在您的 CI/CD 配置中,使用
environment.kubernetes.agent: <path/to/agent/project:agent-name>
语法。 - 在左侧边栏中,选择 运维 > Kubernetes 集群。
- 从基于证书的集群部分,打开服务相同环境范围的集群。
- 选择 详情 选项卡并关闭集群。
从 Auto DevOps 迁移
在您的 Auto DevOps 项目中,您可以使用极狐GitLab 代理与您的 Kubernetes 集群连接。
先决条件
- 安装 极狐GitLab Kubernetes 代理。
- 授权代理访问相关项目或群组。
要从 Auto DevOps 迁移:
- 在极狐GitLab 中,转到您使用 Auto DevOps 的项目。
- 添加三个变量。在左侧边栏中,选择 设置 > CI/CD 并展开 变量。
- 添加一个名为
KUBE_INGRESS_BASE_DOMAIN
的密钥,并将应用程序部署域作为值。 -
添加一个名为
KUBE_CONTEXT
的密钥,值类似path/to/agent/project:agent-name
。 选择您选择的环境范围。 如果您不确定代理的上下文是什么,请编辑您的.gitlab-ci.yml
文件并添加一个作业以查看可用的上下文:deploy: image: name: bitnami/kubectl:latest entrypoint: [""] script: - kubectl config get-contexts
- 添加一个名为
KUBE_NAMESPACE
的密钥,并设置 Kubernetes 命名空间作为目标部署的值。设置相同的环境范围。
- 添加一个名为
- 选择 添加变量。
- 在左侧边栏中,选择 运维 > Kubernetes 集群。
- 从基于证书的集群部分,打开服务相同环境范围的集群。
- 选择 详情 选项卡并禁用集群。
-
编辑您的
.gitlab-ci.yml
文件,并确保它使用 Auto DevOps 模板。例如:include: template: Auto-DevOps.gitlab-ci.yml variables: KUBE_INGRESS_BASE_DOMAIN: 74.220.23.215.nip.io KUBE_CONTEXT: "gitlab-examples/ops/gitops-demo/k8s-agents:demo-agent" KUBE_NAMESPACE: "demo-agent"
- 要测试您的流水线,请在左侧边栏中选择 构建 > 流水线,然后选择 新建流水线。
从极狐GitLab 管理的应用程序迁移
极狐GitLab 管理的应用程序 (GMA) 在极狐GitLab 14.0 中已弃用,并在极狐GitLab 15.0 中移除。Kubernetes 代理不支持它们。要从 GMA 迁移到代理,请执行以下步骤:
迁移集群管理项目
迁移集群监控功能
一旦您使用 Kubernetes 代理将 Kubernetes 集群连接到极狐GitLab,您可以在启用用户访问后使用Kubernetes 仪表板。