管理 Kubernetes 实例的代理
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
使用以下任务来处理 Kubernetes 代理。
查看您的代理
已安装的 agentk 版本显示在 代理 选项卡上。
先决条件:
- 您必须至少拥有 Developer 角色。
查看代理列表:
- 在左侧边栏,选择 搜索或跳转至 并找到包含您的代理配置文件的项目。 您无法从不包含代理配置文件的项目查看已注册的代理。
- 选择 运维 > Kubernetes 集群。
- 选择 代理 选项卡以查看通过代理连接到 GitLab 的集群。
在此页面上,您可以查看:
- 当前项目的所有已注册代理。
- 连接状态。
- 安装在您的集群上的
agentk版本。 - 每个代理配置文件的路径。
配置您的代理
要配置您的代理:
- 向可选创建的 安装期间 的
config.yaml文件添加内容。
您可以从代理列表中快速定位代理配置文件。
配置 列指示 config.yaml 文件的位置,
或显示如何创建它。
代理配置文件管理各种代理功能:
- 对于 GitLab CI/CD 工作流。您必须 授权代理访问您的项目,然后
将
kubectl命令添加到您的.gitlab-ci.yml文件。 - 用于从 GitLab UI 或本地终端访问 用户访问 集群。
- 用于配置 运行时容器扫描。
- 用于配置 远程工作区。
查看共享代理
除了您项目拥有的代理外,您还可以查看与 ci_access 和 user_access 关键字共享的代理。
一旦代理与项目共享,它会自动出现在项目代理选项卡中。
要查看共享代理列表:
- 在左侧边栏,选择 搜索或跳转至 并找到您的项目。
- 选择 运维 > Kubernetes 集群。
- 选择 代理 选项卡。
显示共享代理及其集群的列表。
查看代理的活动信息
活动日志帮助您识别问题并获取故障排除所需的信息。 您可以查看当前日期前一周的事件。要查看代理的活动:
- 在左侧边栏,选择 搜索或跳转至 并找到包含您的代理配置文件的项目。
- 选择 运维 > Kubernetes 集群。
- 选择您要查看活动的代理。
活动列表包括:
- 代理注册事件:当新令牌被 创建 时。
- 连接事件:当代理成功 连接 到集群时。
当您第一次连接代理或在超过一小时不活动后连接代理时,会记录连接状态。
在 这个史诗 中查看和提供关于 UI 的反馈。
调试代理
要调试代理的集群端组件 (agentk),根据可用选项设置日志级别:
errorinfodebug
代理有两个日志记录器:
- 一个通用日志记录器,默认为
info。 - 一个 gRPC 日志记录器,默认为
error。
您可以通过在 代理配置文件 中使用顶层的 observability 部分来更改日志级别,例如将级别设置为 debug 和 warn:
observability:
logging:
level: debug
grpc_level: warn当 grpc_level 设置为 info 或更低时,会有很多 gRPC 日志。
提交配置更改并检查代理服务日志:
kubectl logs -f -l=app=gitlab-agent -n gitlab-agent有关调试的更多信息,请参阅 故障排除文档。
重置代理令牌
一个代理一次只能有两个活动令牌。
要无停机重置代理令牌:
- 创建新令牌:
- 在左侧边栏,选择 搜索或跳转至 并找到您的项目。
- 选择 运维 > Kubernetes 集群。
- 选择您要为其创建令牌的代理。
- 在 访问令牌 选项卡上,选择 创建令牌。
- 输入令牌名称和描述(可选),然后选择 创建令牌。
- 安全存储生成的令牌。
- 使用令牌 在您的集群中安装代理 和 更新代理 到另一个版本。
- 要删除您不再使用的令牌,返回令牌列表并选择 撤销 ( )。
移除代理
您可以使用 GitLab UI 或 GraphQL API 移除代理。 代理和任何关联的令牌将从 GitLab 中移除,但您的 Kubernetes 集群中不会进行任何更改。您必须 手动清理这些资源。
通过 GitLab UI 移除代理
要从 UI 移除代理:
- 在左侧边栏,选择 搜索或跳转至 并找到包含代理配置文件的项目。
- 选择 运维 > Kubernetes 集群。
- 在表格中,在您的代理所在行,在 选项 列中,选择垂直省略号 ( )。
- 选择 删除代理。
使用 GitLab GraphQL API 移除代理
-
从交互式 GraphQL 探索器中的查询获取
<cluster-agent-token-id>。- 对于 GitLab.com,访问 https://gitlab.com/-/graphql-explorer 打开 GraphQL 探索器。
- 对于 GitLab 自托管,访问
https://gitlab.example.com/-/graphql-explorer,将gitlab.example.com替换为您的实例 URL。
query{ project(fullPath: "<full-path-to-agent-configuration-project>") { clusterAgent(name: "<agent-name>") { id tokens { edges { node { id } } } } } } -
通过删除
clusterAgentToken使用 GraphQL 移除代理记录。mutation deleteAgent { clusterAgentDelete(input: { id: "<cluster-agent-id>" } ) { errors } } mutation deleteToken { clusterAgentTokenDelete(input: { id: "<cluster-agent-token-id>" }) { errors } } -
验证移除是否成功。如果 Pod 日志输出包含
unauthenticated,则表示代理已成功移除:{ "level": "warn", "time": "2021-04-29T23:44:07.598Z", "msg": "GetConfiguration.Recv failed", "error": "rpc error: code = Unauthenticated desc = unauthenticated" } -
在您的集群中删除代理:
kubectl delete -n gitlab-kubernetes-agent -f ./resources.yml