マネージド Harbor サービスの概要

このドキュメントでは、Google Distributed Cloud(GDC)エアギャップの Managed Harbor Service(MHS)の概要について説明します。

MHS は、オープンソースの Harbor プロジェクトに基づくフルマネージド コンテナ レジストリです。MHS を GDC 環境に統合すると、手動メンテナンスなしで、分離された環境でコンテナ アーティファクトのライフサイクルを管理するための安全でスケーラブルな方法が提供されます。

この概要では、GDC エアギャップで MHS を使用するために必要な基本コンセプト(GDC プロジェクトと Harbor インスタンス プロジェクトの関係など)について説明します。また、インフラストラクチャ レベルの Identity and Access Management(IAM)ロールとレジストリ レベルのロールベース アクセス制御(RBAC)の管理境界、自動ガベージ コレクションやサービス パフォーマンスの上限などのコア機能についても詳しく説明します。

このドキュメントは、GDC で MHS を使用して管理するプラットフォーム管理者またはアプリケーション オペレーター グループのデベロッパーを対象としています。詳細については、GDC エアーギャップのユーザーのドキュメントをご覧ください。

GDC での Managed Harbor Service の仕組み

運用プレーン

GDC MHS は、ネットワーク アーキテクチャの 2 つの異なる機能レイヤで動作します。各レイヤでは、特定のオペレーションが有効になります。

  • 管理プレーン レイヤ: Harbor レジストリ インスタンスの作成と削除ができます。
  • データプレーン レイヤ: Harbor インスタンスでコンテナ イメージを push および pull できます。

GDC プロジェクトと Harbor インスタンス プロジェクトの違い

マネージド Harbor サービスには、次の 2 種類のプロジェクト タイプがあります。これらのエンティティ間の相互作用を理解することで、適切なレイヤでリソースとアクセス制御を管理できます。

  • GDC プロジェクト: インフラストラクチャ管理の組織部門。これを使用して、VM やクラスタなどの他の GDC リソースとともに Harbor レジストリ インスタンスを管理します。

    • 上限: GDC プロジェクトに含めることができる Harbor インスタンスは 1 つのみです。ただし、この単一のインスタンスは複数の GDC プロジェクト間で共有して、環境の一元化されたレジストリを提供できます。
    • アクセス: インスタンスの作成、管理、管理タスクには、GDC プロジェクト レベルの IAM ロールが必要です。
  • Harbor インスタンス プロジェクト: Harbor インスタンス内に存在するアーティファクト管理の論理グループ。これを使用して、コンテナ イメージとリポジトリ レベルのアクセスを整理します。

    • 上限: 1 つの Harbor インスタンスで複数の Harbor プロジェクトがサポートされます。これらは、共有レジストリ内でマルチテナンシーを有効にするために、個々のチームまたはユーザーに割り当てることができます。
    • アクセス: リポジトリの管理、管理タスクの実行、プロジェクト内のアーティファクト アクセスの制御を行うには、レジストリ固有の RBAC ロールが必要です。

機能

Harbor は、Cloud Native Computing Foundation(CNCF)の卒業済みオープンソース プロジェクトであり、Kubernetes と Docker 用の組み込みクラウド コンテナ レジストリ ソリューションを提供します。マネージド サービス統合を使用すると、Harbor インスタンスをデプロイして、GDC でアーティファクトを保存および管理できます。MHS には次の機能があります。

  • Harbor インスタンスは GDC によって自動的にプロビジョニングされ、管理されます。
  • Harbor は、認証システムとオブザーバビリティ システム用に GDC の IAM と統合されています。
  • Harbor インスタンスは、新しい安定版にアップグレードできます。
  • Harbor は、GDC のコンプライアンスと品質の要件を満たすように強化されています。
  • Harbor インスタンスはゾーンリソースです。1 つのゾーンにデプロイされますが、GDC デプロイ ユニバース内の任意のゾーンからアクセスできます。

Identity and Access Management(IAM)

Managed Harbor Service の RBAC は、GDC プロジェクト レベルと Harbor レジストリ プロジェクト レベルの両方に適用されます。適切な IAM ロールを持つユーザーは、GDC プロジェクト内の Harbor インスタンスにアクセスして管理できます。また、適切な Harbor レジストリ プロジェクト ロールを持つユーザーは、Harbor プロジェクト内のアーティファクトを管理し、管理タスクを実行できます。

GDC-project IAM ロール

GDC は、GDC-IAM ロールを使用してプロジェクト レベルの権限を割り当てます。必要なロールを MHS 手順書で確認し、組織の IAM 管理者にアクセス権の付与を依頼します。

インフラストラクチャ オペレーター(IO)オペレーションを実行するには、GDC MHS サービス マニュアルでタスクに必要な IAM ロールを確認します。

Harbor レジストリ プロジェクトのロール

Harbor プロジェクトは、GDC IAM ロールとは異なる独自の RBAC メカニズムのセットを使用します。

Harbor レジストリ プロジェクトのリポジトリとアーティファクトを管理するには、Harbor プロジェクト レベルで適切な Harbor ロールが割り当てられている必要があります。Harbor のロールのリストについては、ユーザー アクセスの管理に関する Harbor のドキュメント(https://goharbor.io/docs/2.8.0/administration/managing-users/)をご覧ください。

パフォーマンス

Google は、システムの上限で指定されている上限をサポートするために、MHS をテストして検証しています。

実際のパフォーマンスの上限はこれよりも高くなる可能性があります。

ガベージ コレクション

MHS を使用してレジストリからイメージを追加および削除すると、未使用のデータが時間の経過とともに蓄積される可能性があります。ストレージ リソースの負荷を軽減するため、MHS は 12 時間ごとにガベージ コレクションを自動的に実行します。ガベージ コレクションを手動で構成する必要はありません。

次のステップ

MHS を有効にして使用するには、次のドキュメントをご覧ください。