Kubernetes用ダッシュボード(無料オールベータ)

  • GitLab 16.1 で導入され、environment_settings_to_graphql,kas_user_access,kas_user_access_project,expose_authorized_cluster_agentsというフラグがあります。この機能はベータ版です。
  • 機能フラグenvironment_settings_to_graphql はGitLab 16.2で削除されました。
  • GitLab 16.2で機能フラグkas_user_access,kas_user_access_project,expose_authorized_cluster_agents削除されました。

Kubernetes 用ダッシュボードを使用して、直感的なビジュアルインターフェイスでクラスターのステータスを把握できます。ダッシュボードは、CI/CDでデプロイしたかGitOpsでデプロイしたかにかかわらず、接続されているすべてのKubernetesクラスターで動作します。

Fluxユーザーの場合、特定の環境の同期ステータスはダッシュボードに表示されません。イシュー 391581ではこの機能の追加を提案しています。

ダッシュボードの設定

  • GitLab16.2で導入された名前空間によるリソースのフィルタリングは kubernetes_namespace_for_environment というフラグがあります。デフォルトでは無効になっています。
  • GitLab 16.3で名前空間によるリソースのフィルタリングがデフォルトで有効に。機能フラグkubernetes_namespace_for_environment は削除されました。
  • 関連するFluxリソースの選択は、GitLab 16.3でflux_resource_for_environment というフラグで 導入。デフォルトでは無効。

フラグ: セルフマネジメントのGitLabでは、デフォルトではFluxリソースを選択することはできません。利用可能にするには、管理者がflux_resource_for_environment という機能フラグを有効にします。GitLab.comでは、この機能は利用可能です。

ダッシュボードを設定し、指定された環境で使用します。すでに存在する環境に対してダッシュボードを設定することも、環境を作成するときにダッシュボードを追加することもできます。

前提条件:

  • Kubernetes 用エージェントは、user_access キーワードを使用して、環境のプロジェクトまたはその親グループで共有する必要があります。
  • セルフマネジメントのみ。KASはGitLabサブドメイン上で実行されています。例えば、kas.example.comexample.com

環境はすでに存在しています

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. オペレーション > 環境を選択します。
  3. Kubernetesに関連付ける環境を選択します。
  4. 編集]を選択します。
  5. Kubernetes用のGitLabエージェントを選択します。
  6. オプション。Kubernetes namespaceドロップダウンリストから、ネームスペースを選択します。
  7. オプション。Fluxリソースのドロップダウンリストから、Fluxリソースを選択します。
  8. Save を選択します。

環境が存在しません。

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. オペレーション > 環境を選択します。
  3. 新しい環境]を選択します。
  4. Name欄を入力します。
  5. Kubernetes用のGitLabエージェントを選択します。
  6. オプション。Kubernetes namespaceドロップダウンリストから、ネームスペースを選択します。
  7. オプション。Fluxリソースのドロップダウンリストから、Fluxリソースを選択します。
  8. Save を選択します。

ダッシュボードの表示

設定したダッシュボードを表示します:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. オペレーション > 環境を選択します。
  3. GitLab agent for Kubernetesに関連付けられている環境を展開します。
  4. Kubernetesの概要を展開します。

Flux同期ステータス

ダッシュボードにFluxデプロイの同期状況が表示されます。

ステータス説明
調整済みデプロイが環境と正常に照合されました。
照合中調整中です。
停止中人手を介さなければ解決できないエラーのため、照合が滞っています。
失敗回復不能なエラーのため、デプロイが照合できませんでした。
不明デプロイの同期ステータスを取得できませんでした。
使用不可 Kustomization またはHelmRelease リソースを取得できませんでした。

デプロイは、与えられた環境のステータスを収集するためにFluxKustomizationHelmRelease リソースに依存します。これは、環境に対して名前空間を設定する必要があります。デフォルトでは、GitLab はKustomizationHelmRelease リソースからプロジェクトのスラッグ名を探します。環境設定で GitLab が探す名前をカスタマイズすることができます。

トラブルシューティング

Dashboard for 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管理者に連絡してください。