Kubernetes 仪表盘(Beta)
- 引入于 16.1 版本,功能标志为
environment_settings_to_graphql
、kas_user_access
、kas_user_access_project
和expose_authorized_cluster_agents
。此功能处于 Beta 阶段。- 功能标志
environment_settings_to_graphql
移除于极狐GitLab 16.2。- 功能标志
kas_user_access
、kas_user_access_project
和expose_authorized_cluster_agents
移除于极狐GitLab 16.2。- 在 16.10 中移至环境详情页面。
使用 Kubernetes 仪表盘通过直观的可视化界面了解集群的状态。该仪表盘适用于每个连接的 Kubernetes 集群,无论您是使用 CI/CD 还是 GitOps 部署它们。
配置仪表盘
- Filtering resources by namespace introduced in GitLab 16.2 with a flag named
kubernetes_namespace_for_environment
. Disabled by default. - 通过命名空间进行过滤引入于极狐GitLab 16.2,使用名为
kubernetes_namespace_for_environment
的功能标志。默认禁用。 - 通过命名空间进行过滤默认启用于极狐GitLab 16.3。功能标志
kubernetes_namespace_for_environment
被移除。 - 选择相关的 Flux 资源引入于极狐GitLab 16.3,使用名为
flux_resource_for_environment
功能标志。 - 选择相关的 Flux 资源在极狐GitLab 16.4 中正式可用。功能标志
flux_resource_for_environment
被移除。
配置仪表盘,将其用于特定环境。您可以为已存在的环境配置仪表盘,也可以在创建环境时添加仪表盘。
先决条件:
- Kubernetes 代理必须使用
user_access
关键字与环境的项目或其父组共享。
::Tabs
:::TabTitle 环境已经存在
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 选择 运维 > 环境。
- 选择要关联 Kubernetes 的环境。
- 选择 编辑。
- 选择适用于 Kubernetes 的极狐GitLab 代理。
- 可选。从 Kubernetes 命名空间下拉列表中,选择命名空间。
- 可选。从 Flux 资源下拉列表中,选择 Flux 资源。
- 选择 保存。
:::TabTitle 环境不存在
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 选择 运维 > 环境。
- 选择 新建环境。
- 填写 名称 字段。
- 选择适用于 Kubernetes 的极狐GitLab 代理。
- 可选。从 Kubernetes 命名空间下拉列表中,选择命名空间。
- 可选。从 Flux 资源下拉列表中,选择 Flux 资源。
- 选择 保存。
::EndTabs
为动态环境配置仪表盘
- 引入于极狐GitLab 17.6。
要为动态环境配置仪表盘:
- 在你的
.gitlab-ci.yml
文件中指定代理。你必须制定代理配置项目的完整路径,后面跟上冒号以及代理的名称。
比如:
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 watch API 集成引入于极狐GitLab 16.6,使用名为
k8s_watch_api
的功能标志。默认禁用。- Kubernetes watch API 集成默认启用于极狐GitLab 16.7。
- 功能在极狐GitLab 17.1 正式可用。功能标志
k8s_watch_api
被移除。
查看仪表盘以查看连接集群的状态。如果启用了功能标志 k8s_watch_api
,您的 Kubernetes 资源和 Flux 同步状态将实时更新。
要查看配置的仪表盘:
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 选择 运维 > 环境。
- 扩展与适用于 Kubernetes 的极狐GitLab 代理关联的环境。
- 展开 Kubernetes 概述。
pod 列表会展示出来。选择一个 pod 来查看其详细信息。
Flux 同步状态
- 引入于极狐GitLab 16.3。
- 自定义 Flux 资源的名称引入于极狐GitLab 16.3,功能标志为
flux_resource_for_environment
。- 自定义 Flux 资源的名称普遍可用于极狐GitLab 16.4。移除功能标志
flux_resource_for_environment
。
你可以从仪表盘查看 Flux 部署的同步状态。要显示部署状态,您的仪表盘必须能够检索 Kustomization
和 HelmRelease
资源,这需要为环境配置命名空间。
极狐GitLab 在环境设置中指定的 Flux 资源 下拉列表中搜索 Kustomization
和 HelmRelease
资源。
仪表盘展示 Flux 部署的同步状态。
状态 | 描述 |
---|---|
已调谐 | 部署成功与其环境相协调 |
调谐中 | 正在进行协调 |
停滞 | 由于存在错误,如果没有人为干预就无法解决,协调会陷入困境 |
失败 | 由于出现不可恢复的错误,部署无法协调 |
未知 | 无法检索部署的同步状态 |
不可用 | 无法检索 Kustomization 或 HelmRelease 资源 |
触发 Flux 调谐
- 引入于极狐GitLab 17.3。
你可以手动调谐你的部署与其 Flux 资源。
要触发调谐:
- 在仪表盘上,选择 Flux 部署的同步状态徽章。
- 选择 操作 ({ellipsis_v}) **> 触发调谐 ({retry}**)。
暂停或恢复 Flux 调谐操作
- 引入于极狐GitLab 17.5。
你可以从 UI 上手动暂停或恢复你的 Flux 调谐。
要暂停或恢复调谐:
- 在仪表盘上,选择 Flux 部署的同步状态徽章。
- 选择 操作 (),然后选择以下之一:
- 暂停调谐 () 以暂停 Flux 调谐。
- 恢复调谐 () 以重新启动 Flux 调谐。
查看 pod 日志
- 引入于极狐GitLab 17.2。
当你想从配置好的仪表盘来快速了解和排查跨环境的问题时,可以查看 pod 日志。你可以查看 pod 中每个容器的日志。
- 选择 查看日志,然后选择你想要查看日志的容器。
你还可以从 pod 详情中查看 pod 日志。
删除日志
- 引入极狐GitLab 17.3。
要重启一个失败的 pod,直接从 Kubernetes 仪表盘上删除它。
要删除一个 pod:
- 在 Kubernetes 概览 选项卡中,找到你想要删除的 pod。
- 选择 操作 () > 删除 pod ()。
你还可以从 pod 详情中删除 pod。
详情仪表盘
- 引入于极狐GitLab 16.4,使用名为
k8s_dashboard
的功能标志。默认禁用。
详情仪表盘提供了以下 Kubernetes 资源的相关信息:
- Pods
- Services
- Deployments
- ReplicaSets
- StatefulSets
- DaemonSets
- Jobs
- CronJobs
每一个仪表盘都会显示资源的状态、命名空间和时间。你可以选择一个资源,打开侧边抽屉查看更多信息,包括标签、YAML 格式的状态信息、注解和规格说明。
查看详情仪表盘
先决条件:
-
配置好的 Kubernetes 代理可以在环境的项目或它们的父群组中共享,这需要使用关键字
user_access
。
详情仪表盘没有链接到侧边栏导航。要查看详情仪表盘:
- 找到你的 Kubernetes 代理 ID:
- 在左侧导航栏,选择 搜索或前往 并找到你的项目。
- 选择 运维 > Kubernetes 集群。
- 复制你想要访问的代理的数字 ID。
-
前往下面的其中一个 URL,将
<agent_id>
替换为你的代理 ID:资源类型 URL Pods https://myinstance.gitlab.com/-/kubernetes/<agent_id>/pods
Services https://myinstance.gitlab.com/-/kubernetes/<agent_id>/services
Deployments https://myinstance.gitlab.com/-/kubernetes/<agent_id>/deployments
ReplicaSets https://myinstance.gitlab.com/-/kubernetes/<agent_id>/replicaSets
StatefulSets https://myinstance.gitlab.com/-/kubernetes/<agent_id>/statefulSets
DaemonSets https://myinstance.gitlab.com/-/kubernetes/<agent_id>/daemonSets
Jobs https://myinstance.gitlab.com/-/kubernetes/<agent_id>/jobs
CronJobs https://myinstance.gitlab.com/-/kubernetes/<agent_id>/cronJobs
故障排除
使用 Kubernetes 仪表盘时,您可能会遇到以下问题。
用户无法列出 API 组中的资源
您可能会收到一条错误,Error: services is forbidden: User "gitlab:user:<user-name>" cannot list resource "<resource-name>" in API group "" at the cluster scope
。
当不允许用户在 Kubernetes RBAC 中执行指定操作时,会发生此错误。
要解决此问题,请检查您的 RBAC 配置。如果 RBAC 配置正确,请联系 Kubernetes 管理员。
极狐GitLab 代理下拉菜单为空
当你配置新环境时,极狐GitLab 代理下拉菜单可能为空,即使你已经配置了 Kubernetes 集群。
要填充 GitLab 代理 下拉菜单,使用 user_access
关键字授予代理 Kubernetes 访问权限。