ワークスペースのトラブルシューティング
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}このエラーは、Kubernetes向けGitLabエージェントの既知のイシューが原因です。このエラーは、エージェントインスタンスがリーダシップリースを更新できず、remote_developmentのようなリーダー専用のモジュールがシャットダウンする場合に発生します。
この問題を解決するには、次の手順に従います:
- エージェントインスタンスを再起動します。
- 問題が解決しない場合は、Kubernetesクラスターの正常性と接続性を確認してください。
エラー: Workspace create failed: Expiration date must be before <date>
ワークスペースを作成する際に、UIにこのエラーが表示されることがあります:
Workspace create failed: Expiration date must be before <date>このエラーは、新しく作成されたワークスペースへのパーソナルアクセストークン認証のために作成されたの有効期限が、インスタンスのトークン有効期限設定を超えている場合に発生します。
この問題を解決するには、アクセストークン有効期限制限を無効にしてください。イシュー579331)は、この制限に対処するために、ワークスペース関連のトークンに対して設定可能な制限を提案しています。
エラー: No agents available to create workspaces
プロジェクトでワークスペースを作成すると、次のエラーが表示されることがあります:
No agents available to create workspaces. Please consult Workspaces documentation for troubleshooting.このエラーはいくつかの理由で発生する可能性があります。次のトラブルシューティング手順を実行してください。
パーミッションを確認
- ワークスペースプロジェクトとエージェントプロジェクトの両方で、デベロッパー、メンテナー、またはオーナーのロールを持っていることを確認してください。
- あなたのワークスペースプロジェクトの祖先グループで、エージェントが許可されていることを確認してください。
詳細については、エージェントを許可するを参照してください。
エージェント設定を確認
あなたのエージェント設定でremote_developmentモジュールが有効になっていることを確認してください:
remote_development:
enabled: trueremote_developmentモジュールがKubernetes向けGitLabエージェントで無効になっている場合、enabledをtrueに設定してください。
エージェント名の不一致を確認
Kubernetes向けGitLabエージェントトークンの作成ステップで作成したエージェント名が、.gitlab/agents/FOLDER_NAME/のフォルダー名と一致することを確認してください。
名前が異なる場合は、フォルダー名をエージェント名と正確に一致するように変更してください。
エージェント接続ステータスを確認
エージェントがGitLabに接続されていることを確認してください:
あなたのグループに移動します。
操作 > Kubernetesクラスターを選択します。
接続ステータスが接続済みであることを確認してください。接続されていない場合は、エージェントログを確認してください:
kubectl logs -f -l app=gitlab-agent -n gitlab-workspaces
エラー: unsupported scheme in kas address
このエラーは、GitLab Relay (KAS) アドレスに、必要なプロトコルスキームがない場合に発生します。
この問題を解決するには、次の手順に従います:
- あなたの
TF_VAR_kas_address変数にwss://プレフィックスを追加してください。例: 。例:wss://kas.gitlab.com。 - あなたの設定を更新し、エージェントを再デプロイしてください。
エラー: オフライン環境でワークスペースを開始する際のImagePullBackOff
オフライン環境でワークスペースを作成すると、このエラーが表示されることがあります:
workspace-example-abc123-def456 0/1 Init:ImagePullBackOff 0このエラーは、ワークスペースがregistry.gitlab.comから初期化コンテナイメージをプルすることができない場合に発生します。オフライン環境では、初期化コンテナイメージはハードコードされており、あなたのdevfileからオーバーライドすることはできません。
次の回避策はサポートされておらず、一時的なものです。イシュー509983がサポートされているソリューションを提供するまで、自己責任で使用してください。
回避策は次のとおりです:
- 初期化コンテナイメージの参照を変更するために、KubernetesミューテートWebhookをデプロイします。
MutatingWebhookConfigurationを作成、更新、または削除するためのクラスター管理者権限があることを確認してください。
実装例については、シンプルなKubernetesアドミッションWebhookを参照してください。
エラー: 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クローン操作は、ネットワークの問題、インフラストラクチャの問題、または失効したリポジトリパーミッションが原因で失敗します。
この問題を解決するには、次の手順に従います:
エラーダイアログで別のワークスペースを選択するように促されたら、キャンセルを選択します。
VS Codeメニューから、ファイル > Open Folderを選択します。
/projectsディレクトリに移動し、OKを選択します。EXPLORERパネルで、あなたのプロジェクトと同じ名前のディレクトリがあるか確認してください。
- ディレクトリが見つからない場合、Gitクローン操作は完全に失敗しています。
- ディレクトリは存在するが空の場合、クローン操作は開始されたものの完了していません。
ターミナルを開きます。メニューからターミナル > New Terminalを選択します。
ワークスペースのログディレクトリに移動します:
cd /tmp/workspace-logs/Gitクローンが失敗した理由を示す可能性のあるエラー出力についてログを確認してください:
less poststart-stderr.log特定された問題を解決し、あなたのワークスペースを再起動してください。
問題が解決しない場合は、Gitを含む動作するコンテナイメージで新しいワークスペースを作成してください。
postStartイベントをデバッグ
あなたのカスタムpostStartイベントが失敗したり、期待通りに動作しない場合、ワークスペースログディレクトリを使用して問題をデバッグできます。
一般的なpostStartデバッグシナリオとその解決策:
Command not found: あなたのコンテナイメージにおける不足している依存関係を示すエラーがないかpoststart-stderr.logを確認してください。Permission denied: ファイルパーミッションまたはユーザー設定の調整が必要となる可能性のあるパーミッションエラーをpoststart-stderr.logで確認してください。Network issues: あなたのpostStartイベントが依存関係をダウンロードしたり、外部リソースにアクセスしたりする際に、接続タイムアウトまたはDNS解決の失敗がないか確認してください。Long-running commands: もしpostStartイベントがハングしている場合、poststart-stdout.logでコマンドがまだ実行中か、または正常に完了したかを確認してください。
postStartコマンドの実行ログを確認するには:
ワークスペースでターミナルを開きます。
ワークスペースのログディレクトリに移動します:
cd /tmp/workspace-logs/ログファイルを表示します:
# Monitor postStart execution output in real-time tail -f poststart-stdout.log # Check postStart errors cat poststart-stderr.log # Check VS Code server startup cat start-vscode.logエラーを確認してください:
# Search for error messages across all logs grep -i error *.log # Search for specific command output grep "your-command-name" poststart-stdout.log特定された問題を解決し、あなたのワークスペースを再起動してください。
詳細については、ワークスペースログディレクトリと利用可能なログファイルを参照してください。