ConfigMap の使用

ConfigMap を作成し、その ConfigMap を使用するように Cloud Run for Anthos サービスとリビジョンを構成する方法を学びます。

サービスの一般的なユースケースは、ConfigMap を使用してアプリケーション コードを構成から分離することです。ConfigMap は Secret に似ています。ただし、Secret は機密情報の保存に使用されますが、ConfigMap は一般公開の認証情報、ホスト名、URL など、機密性の低いデータの保存に使用されます。ConfigMap の詳しい使用方法については、Google Kubernetes Engine のドキュメントをご覧ください。

コンテナで ConfigMap にアクセスできるようにするには、次のいずれかのオプションを選択します。

  • ConfigMap をボリュームとしてマウントします。このとき、ConfigMap エントリは、マウントされたボリューム内のファイルとして使用可能になります。この方法は、ConfigMap を読み取るときに最新バージョンを確実に取得できるのでおすすめです。
  • ConfigMap の引き渡しには、環境変数を使用してください。

ConfigMap の作成

GKE ドキュメントの ConfigMaps ページで説明されているように、ConfigMap を作成する方法は複数あります。ConfigMap を簡単に作成する手順は、次のとおりです。

ConfigMap は、Cloud Run for Anthos サービスを実行しているクラスタと同じ名前空間に作成します。この手順では、default 名前空間を使用します。

コマンドラインから ConfigMap を作成できます。

kubectl create configmap NAME DATA

以下のように置き換えます。

  • NAME は、ConfigMap オブジェクトの名前です。
  • DATA は、以下のいずれかです。

    • --from-file フラグと、1 つ以上の構成ファイルを含む各ディレクトリのパス。
    • ConfigMap に追加するそれぞれに対する --from-literal フラグと Key-Value ペア。

例:

kubectl create configmap special-config --from-literal=special.how=very --from-literal=special.type=charm

ConfigMap は、default 名前空間のクラスタで使用できる場所で作成およびアップロードされます。

サービスで ConfigMap を使用できるようにする

ConfigMap を作成したら、新しいサービスを作成するとき、または既存のサービスを更新してリビジョンをデプロイするときに、Google Cloud Console または Google Cloud CLI を使用して、ボリュームまたは環境変数として Cloud Run for Anthos サービスで ConfigMap を使用できるようにします。

Console

  1. Google Cloud コンソールで Cloud Run for Anthos に移動します。

    Cloud Run for Anthos に移動

  2. デプロイ先の新しいサービスを構成する場合は、[サービスの作成] をクリックします。既存のサービスを構成する場合は、そのサービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。

  3. [詳細設定] で [変数と Secret] をクリックします。

    画像

  4. [ConfigMap を参照] で、プルダウン メニューから目的の ConfigMap を選択します。

    • [参照の方法] プルダウン メニューで、ConfigMap の使用方法を選択するか、ボリュームとしてマウントするか、環境変数として公開します。
    • ボリュームとしてマウントをする場合は、パスを指定して [完了] をクリックします。
    • 環境変数として公開する場合は、次の手順を行います。
      1. 変数の [名前] を指定し、[キー] プルダウン メニューから対応する ConfigMap 値を選択します。
      2. [追加] をクリックして、別の ConfigMap 値を追加します。
      3. 変数の [名前] を指定し、[キー] プルダウン メニューから対応する ConfigMap 値を選択します。
      4. [完了] をクリックします。

  5. [次へ] をクリックして、次のセクションに進みます。

  6. [このサービスをトリガーする方法の構成] セクションで、サービスを呼び出すために使用する接続を選択します。

  7. [作成] をクリックしてイメージを Cloud Run for Anthos にデプロイし、デプロイの完了を待ちます。

コマンドライン

Google Cloud CLI を使用して、新しいサービスに ConfigMap を設定できます。または、既存のサービスを更新することもできます。

  • 既存のサービスの場合は、次のいずれかのパラメータを指定して gcloud run services update コマンドを実行し、ConfigMap を更新します。

    例:

    gcloud run services update SERVICE --update-config-maps KEY1=VALUE1,KEY2=VALUE2
    

    以下のように置き換えます。

    • SERVICE は、実際のサービスの名前に置き換えます。
    • KEY1=VALUE1,KEY2=VALUE2 は、各 ConfigMap の名前と値のペアのカンマ区切りのリストに置き換えます。各 KEY にマウントパスを指定することも、環境変数を指定することもできます。マウントパスを指定する場合は、先頭にスラッシュ(/)を付けます。その他のキーは、すべて環境変数に対応しています。各 VALUE に ConfigMap 名を指定します。複数のパラメータを指定する方法
    • コマンド パラメータ オプション

      複数の Key-Value ペアを指定するには、読みやすくするために複数のパラメータを指定します。例:
      [...]
      --update-config-maps "KEY=VALUE1" \
      --update-config-maps "KEY=VALUE2" \
      --update-config-maps "KEY=VALUE3"
      
  • 新しいサービスの場合は、--set-config-maps パラメータを指定して gcloud run deploy コマンドを実行し、ConfigMap を設定します。

    gcloud run deploy SERVICE --image=IMAGE_URL --set-config-maps KEY1=VALUE1,KEY2=VALUE2
    

    以下のように置き換えます。

    • IMAGE_URL は、コンテナ イメージへの参照(gcr.io/myproject/my-image:latest など)に置き換えます。
    • SERVICE は、実際のサービスの名前に置き換えます。
    • KEY1=VALUE1,KEY2=VALUE2 は、各 ConfigMap の名前と値のペアのカンマ区切りのリストに置き換えます。各 KEY にマウントパスを指定することも、環境変数を指定することもできます。マウントパスを指定する場合は、先頭にスラッシュ(/)を付けます。その他のキーは、すべて環境変数に対応しています。各 VALUE に ConfigMap 名を指定します。複数のパラメータを指定する方法
    • コマンド パラメータ オプション

      複数の Key-Value ペアを指定するには、読みやすくするために複数のパラメータを指定します。例:
      [...]
      --update-config-maps "KEY=VALUE1" \
      --update-config-maps "KEY=VALUE2" \
      --update-config-maps "KEY=VALUE3"