工作空间故障排除
在使用 GitLab 工作空间时,您可能会遇到以下问题。
错误:Failed to renew lease
在创建工作空间时,您可能会在代理的日志中看到以下错误信息:
{"level":"info","time":"2023-01-01T00:00:00.000Z","msg":"failed to renew lease gitlab-agent-remote-dev-dev/agent-123XX-lock: timed out waiting for the condition\n","agent_id":XXXX}此错误是由于 GitLab Kubernetes Agent 的一个已知问题引起的。
当代理实例无法续订其领导权租约时,就会发生此错误,导致 remote_development 等仅领导者模块关闭。
要解决此问题:
- 重启代理实例。
- 如果问题仍然存在,请检查您的 Kubernetes 集群的健康状况和连接性。
错误:No agents available to create workspaces
当您在项目中创建工作空间时,可能会收到以下错误:
No agents available to create workspaces. Please consult Workspaces documentation for troubleshooting.此错误可能由多种原因引起。请按照以下故障排除步骤进行操作。
检查权限
- 确保您对工作空间项目和代理项目至少拥有
Developer角色。 - 验证代理是否被允许在您工作空间项目的祖先组中。 有关更多信息,请参阅 允许代理。
检查代理配置
验证您的代理配置中是否启用了 remote_development 模块:
remote_development:
enabled: true如果 GitLab Kubernetes Agent 的 remote_development 模块被禁用,请将 enabled 设置为 true。
检查代理名称不匹配
确保您在 创建 GitLab Kubernetes Agent 令牌 步骤中创建的代理名称与 .gitlab/agents/FOLDER_NAME/ 中的文件夹名称相匹配。
如果名称不同,请重命名文件夹以完全匹配代理名称。
检查代理连接状态
验证代理是否已连接到 GitLab:
-
转到您的组。
-
选择 Operate > Kubernetes clusters。
-
验证 Connection status 是否为 Connected。如果未连接,请检查代理日志:
kubectl logs -f -l app=gitlab-agent -n gitlab-workspaces
错误:unsupported scheme in GitLab Kubernetes Agent Server address
当 Kubernetes Agent Server (KAS) 地址缺少必需的协议方案时,会发生此错误。
要解决此问题:
- 为您的
TF_VAR_kas_address变量添加wss://前缀。例如:wss://kas.gitlab.com。 - 更新您的配置并重新部署代理。
错误:redirect URI included is not valid
在访问工作空间时,您可能会遇到关于无效重定向 URI 的 OAuth 错误。
此错误可能由以下原因引起:
-
OAuth 应用程序配置不正确。要解决此问题:
- 验证 GitLab 中您的 OAuth 应用程序重定向 URI 是否与您的域名匹配。
- 更新 OAuth 应用程序的重定向 URI。例如:
https://YOUR_DOMAIN/auth/callback。
-
工作空间代理正在使用过时的 OAuth 凭据。要解决此问题:
-
验证代理是否正在使用最新的 OAuth 凭据。
-
重启工作空间代理:
kubectl rollout restart deployment -n gitlab-workspaces gitlab-workspaces-proxy
-
错误:Workspace does not exist
您可能会在 VS Code 中收到以下错误:
Workspace does not exist
Please select another workspace to open.当工作空间成功启动,但由于 Git 克隆操作失败而导致预期的项目目录缺失时,就会发生此问题。Git 克隆操作可能因网络问题、基础设施问题或被撤销的仓库权限而失败。
要解决此问题:
-
在错误对话框中提示选择另一个工作空间时,选择 Cancel。
-
从 VS Code 菜单中,选择 File > Open Folder。
-
转到
/projects目录并选择 OK。 -
在 EXPLORER 面板中,查找与您的项目名称相同的目录。
- 如果该目录缺失,则 Git 克隆操作完全失败。
- 如果该目录存在但为空,则克隆操作已开始但未完成。
-
打开一个终端。从菜单中,选择 Terminal > New Terminal。
-
转到工作空间日志目录:
cd /tmp/workspace-logs/ -
检查日志中可能指示 Git 克隆失败原因的错误输出:
less poststart-stderr.log -
解决已识别的问题并重启您的工作空间。
如果问题仍然存在,请使用包含 Git 的可用容器镜像创建一个新的工作空间。