プロジェクトのストレージ CLI をインストールして構成する

このページでは、Google Distributed Cloud(GDC)のエアギャップ プロジェクトで作業する際にオブジェクト ストレージを管理するための gdcloud CLI をインストールして構成する方法について説明します。この分離された環境でストレージ バケットとオブジェクトを効果的に使用するために必要なコンポーネントと設定をダウンロード、インストール、構成する方法について説明します。

このページは、GDC エアギャップ環境内のプロジェクト用にオブジェクト ストレージ バケットのプロビジョニングと管理を検討している、インフラストラクチャ オペレーター グループの IT 管理者やアプリケーション オペレーター グループのデベロッパーなどのユーザーを対象としています。詳細については、GDC エアギャップの対象読者に関するドキュメントをご覧ください。

始める前に

ストレージ CLI をインストールして構成するには、組織の IAM 管理者に連絡して 組織ネットワーク ポリシー管理者(org-network-policy-admin)ロールをリクエストします。このロールを使用すると、組織のネットワーク ポリシーを作成、編集、削除できます。

gdcloud CLI をダウンロードする

手順に沿って gdcloud CLI をダウンロードします。

gdcloud CLI をインストールする

ストレージ コマンドツリーを使用するには、ストレージ依存関係コンポーネントをインストールする必要があります。

  1. gcloud CLI をインストールするの手順に沿って操作します。

  2. ストレージ依存関係コンポーネントをインストールするには、次のコマンドを実行します。

    gdcloud components install storage-cli-dependencies
    

    components install コマンドの詳細については、gdcloud CLI をインストールするをご覧ください。

オブジェクト ストレージ用に gdcloud CLI を構成する

オブジェクト ストレージに gdcloud CLI を使用するには、次の構成を設定する必要があります。

  1. ACCESS_KEY_ID は、アクセス認証情報の取得でシークレットから取得したアクセスキー ID に置き換えます。

    gdcloud config set storage/s3_access_key_id ACCESS_KEY_ID
    
  2. SECRET_ACCESS_KEY は、アクセス認証情報の取得のシークレットから取得したシークレット キーに置き換えます。

    gdcloud config set storage/s3_secret_access_key SECRET_ACCESS_KEY
    
  3. CA_BUNDLE_FILE は、CA 証明書のパスに置き換えます。これは、身元を保証する信頼できる組織である認証局(CA)に属するデジタル証明書です。GDC CA 信頼バンドルは、インフラストラクチャ オペレーター(IO)グループのメンバーにリクエストできます。GDC CA 証明書の取得について詳しくは、GDC 信頼バンドルを取得するをご覧ください。

    gdcloud config set storage/s3_custom_ca_certs_file CA_BUNDLE_FILE
    
  4. ENDPOINT を、インフラストラクチャ オペレーター(IO)が提供するエンドポイントに置き換えます。

    gdcloud config set storage/s3_endpoint ENDPOINT
    

    この手順は、デュアルゾーン バケットでは若干異なります。各デュアルゾーン バケットには、バケットへのアクセスに使用できる 3 つのエンドポイントが用意されています。ほとんどの場合、自動フェイルオーバーを利用するには、グローバル エンドポイントが適しています。

    • Zone1 エンドポイント: このエンドポイントは常に zone1 で受信されます。このエンドポイントを使用すると、zone1 に書き込まれたオブジェクトに対して書き込み後読み取りの整合性が確保されます。ただし、zone1 がダウンした場合は、クライアントが zone2 またはグローバル エンドポイントを使用するように変更して、このバケットへの読み取り/書き込みを続行する必要があります。クライアントがユーザー クラスタからアクセスしている場合、このエンドポイントには zone1 内からのみアクセスできます。
    • Zone2 エンドポイント: このエンドポイントは常に zone2 で受信されます。このエンドポイントを使用すると、zone2 に書き込まれたオブジェクトに対して書き込み後読み取りの整合性が確保されます。ただし、zone2 がダウンした場合、クライアントはこのバケットへの読み取り/書き込みを続行するために、zone1 またはグローバル エンドポイントを使用するように変更する必要があります。クライアントがユーザー クラスタからアクセスしている場合、このエンドポイントには zone2 内からのみアクセスできます。
    • グローバル エンドポイント: このエンドポイントを使用すると、リクエストは zone1 または zone2 にルーティングされます。このオプションではセッション アフィニティが提供されないため、同じセッションを使用して行われたリクエストは zone1 または zone2 のいずれかに到達する可能性があります。つまり、グローバル エンドポイントに対するリクエストには、書き込み後の読み取りの保証はありません。グローバル エンドポイントは、ゾーンがダウンした場合に自動フェイルオーバーを提供するため、ユーザーはゾーン エンドポイントを使用する場合のように、ワークロードでエンドポイントを変更する必要はありません。また、このエンドポイントには、すべてのゾーンのユーザー クラスタからアクセスできます。

    管理 API サーバーに対して次のコマンドを実行して、バケットのグローバル エンドポイントとゾーン エンドポイントを表示し、使用するエンドポイントを選択します。

    kubectl get buckets BUCKET_NAME -n PROJECT_NAME -o jsonpath="{.status.globalEndpoint}" --kubeconfig MANAGEMENT_API_SERVER
    
    kubectl get buckets BUCKET_NAME -n PROJECT_NAME -o jsonpath="{.status.zonalEndpoints}" --kubeconfig MANAGEMENT_API_SERVER