Kubernetes 仪表板
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
- Status: Beta
使用 Kubernetes 仪表板通过直观的可视化界面了解集群状态。 该仪表板适用于每个已连接的 Kubernetes 集群,无论您是使用 CI/CD 还是 GitOps 部署的。
配置仪表板
为给定环境配置仪表板。 您可以为已存在的环境配置仪表板,或在创建环境时添加一个。
先决条件:
- 已为 Kubernetes 安装 GitLab agent,并且已为环境的项目或其父组配置了
user_access。
- 在左侧边栏,选择 搜索或转到 并找到您的项目。
- 选择 运维 > 环境。
- 选择要与 Kubernetes agent 关联的环境。
- 选择 编辑。
- 选择一个 GitLab agent for Kubernetes。
- 可选。从 Kubernetes namespace 下拉列表中选择一个 namespace。
- 可选。从 Flux resource 下拉列表中选择一个 Flux 资源。
- 选择 保存。
- 在左侧边栏,选择 搜索或转到 并找到您的项目。
- 选择 运维 > 环境。
- 选择 新建环境。
- 填写 名称 字段。
- 选择一个 GitLab agent for Kubernetes。
- 可选。从 Kubernetes namespace 下拉列表中选择一个 namespace。
- 可选。从 Flux resource 下拉列表中选择一个 Flux 资源。
- 选择 保存。
为动态环境配置仪表板
为动态环境配置仪表板:
- 在您的
.gitlab-ci.yml文件中指定 agent。您必须指定 agent 配置项目的完整路径, 后跟冒号和 agent 的名称。
例如:
deploy_review_app:
stage: deploy
script: make deploy
environment:
name: review/$CI_COMMIT_REF_SLUG
kubernetes:
agent: path/to/agent/project:agent-name有关更多信息,请参阅 CI/CD YAML 语法参考。
查看仪表板
查看仪表板以查看已连接集群的状态。 您的 Kubernetes 资源和 Flux 协调更新会实时显示。
要查看配置好的仪表板:
- 在左侧边栏,选择 搜索或转到 并找到您的项目。
- 选择 运维 > 环境。
- 选择与 Kubernetes agent 关联的环境。
- 选择 Kubernetes 概览 选项卡。
将显示一个 pod 列表。选择一个 pod 以查看其详细信息。
Flux 同步状态
您可以从仪表板查看 Flux 部署的同步状态。
要显示部署状态,您的仪表板必须能够检索 Kustomization 和 HelmRelease 资源,
这需要为环境配置一个 namespace。
GitLab 会搜索环境设置中 Flux resource 下拉列表指定的 Kustomization 和 HelmRelease 资源。
仪表板会显示以下状态徽章之一:
| 状态 | 描述 |
|---|---|
| 已协调 | 部署已成功与其环境协调。 |
| 协调中 | 正在进行协调。 |
| 停滞 | 协调因无法通过人工干预解决的错误而停滞。 |
| 失败 | 部署因不可恢复的错误而无法协调。 |
| 未知 | 无法检索部署的同步状态。 |
| 不可用 | 无法检索 Kustomization 或 HelmRelease 资源。 |
触发 Flux 协调
您可以手动协调您的部署与其 Flux 资源。
要触发协调:
- 在仪表板上,选择 Flux 部署的同步状态徽章。
- 选择 操作 ( ) > 触发协调 ( )。
暂停或恢复 Flux 协调
您可以从 UI 手动暂停或恢复您的 Flux 协调。
要暂停或恢复协调:
- 在仪表板上,选择 Flux 部署的同步状态徽章。
- 选择 操作 (
),然后选择以下选项之一:
- 暂停协调 ( ) 以暂停 Flux 协调。
- 恢复协调 ( ) 以重新启动 Flux 协调。
查看 pod 日志
当您想从配置好的仪表板快速了解和排查跨环境问题时,查看 pod 日志。您可以查看 pod 中每个容器的日志。
- 选择 查看日志,然后选择您要查看日志的容器。
您也可以从 pod 详细信息中查看 pod 日志。
删除 pod
要重启失败的 pod,请从 Kubernetes 仪表板中删除它。
要删除 pod:
- 在 Kubernetes 概览 选项卡上,找到您要删除的 pod。
- 选择 操作 ( ) > 删除 pod ( )。
您也可以从 pod 详细信息中删除 pod。
详细仪表板
The availability of this feature is controlled by a feature flag. For more information, see the history. This feature is available for testing, but not ready for production use.
详细仪表板提供以下 Kubernetes 资源的信息:
- Pods
- Services
- Deployments
- ReplicaSets
- StatefulSets
- DaemonSets
- Jobs
- CronJobs
每个仪表板都会显示一个资源列表,包含其状态、namespace 和运行时间。 您可以选择一个资源来打开一个抽屉,其中包含更多信息,包括标签 和 YAML 格式的状态、注释和规范。
由于 此问题 中描述的重点转移,详细仪表板的工作已暂停。
要提供对详细仪表板的反馈,请参阅 问题 460279。
查看详细仪表板
先决条件:
- 已为 Kubernetes 配置 GitLab agent,并使用
user_access关键字与环境的项目或其父组共享。
详细仪表板未从侧边栏导航中链接。 要查看详细仪表板:
- 找到您的 Kubernetes agent ID:
- 在左侧边栏,选择 搜索或转到 并找到您的项目。
- 选择 运维 > Kubernetes 集群。
- 复制您要访问的 agent 的数字 ID。
- 转到以下 URL 之一,将
<agent_id>替换为您的 agent ID:资源类型 URL Pods https://myinstance.gitlab.com/-/kubernetes/<agent_id>/podsServices https://myinstance.gitlab.com/-/kubernetes/<agent_id>/servicesDeployments https://myinstance.gitlab.com/-/kubernetes/<agent_id>/deploymentsReplicaSets https://myinstance.gitlab.com/-/kubernetes/<agent_id>/replicaSetsStatefulSets https://myinstance.gitlab.com/-/kubernetes/<agent_id>/statefulSetsDaemonSets https://myinstance.gitlab.com/-/kubernetes/<agent_id>/daemonSetsJobs https://myinstance.gitlab.com/-/kubernetes/<agent_id>/jobsCronJobs https://myinstance.gitlab.com/-/kubernetes/<agent_id>/cronJobs
故障排除
在使用 Kubernetes 仪表板时,您可能会遇到以下问题。
用户无法在 API 组中列出资源
您可能会收到一个错误,提示 错误:services 被禁止:用户 "gitlab:user:<用户名>" 无法在集群范围的 API 组 "" 中列出资源 "<资源名>"。
当用户不被允许在 Kubernetes RBAC 中执行指定操作时,会发生此错误。
要解决此问题,请检查您的 RBAC 配置。如果 RBAC 配置正确,请联系您的 Kubernetes 管理员。
GitLab agent 下拉列表为空
当您配置新环境时,即使您已配置了 Kubernetes 集群,GitLab agent 下拉列表可能为空。
要填充 GitLab agent 下拉列表,请使用 user_access 关键字授予 agent Kubernetes 访问权限。