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

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

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

始める前に

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

gdcloud CLI をダウンロードする

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

gdcloud CLI をインストールする

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

  1. gdcloud 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 証明書のパスに置き換えます。これは、ID を保証する信頼できる組織である認証局(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