Linux ワークロードをターゲット クラスタにデプロイする

ソースプラット フォームからワークロードを移行したら、そのプロセスで生成されたデプロイ アーティファクトを使用して、移行したワークロード コンテナを別のクラスタにデプロイできます。

Skaffold は、アプリケーションのビルド、push、デプロイのワークフローを処理できます。詳細については、Skaffold を使用して複数のイメージをビルドしてデプロイするをご覧ください。

始める前に

ワークロードをデプロイする前に、次の処理を完了しておく必要があります。

ターゲット クラスタにデプロイする

以降のセクションでは、クラスタにワークロードをデプロイするためのオプションについて説明します。

Docker レジストリとして GCR を使用してターゲット クラスタにデプロイする

ターゲット クラスタが Container Registry(GCR)にアクセスできるようにするには、GCR へのアクセスに必要な認証情報を含む Kubernetes Secret を作成します。

  1. Container Registry と Cloud Storage にアクセスするためのサービス アカウントを作成するで説明されているように、移行をデプロイするためのサービス アカウントを作成します。

    このプロセスでは、m4a-install.json という名前の JSON キーファイルをダウンロードする必要があります。

  2. GCR にアクセスするために必要な認証情報を含む Kubernetes Secret を作成します。

    kubectl create secret docker-registry gcr-json-key \
     --docker-server=gcr.io --docker-username=_json_key --docker-password="$(cat ~/m4a-install.json)" \
     --docker-email=account@project.iam.gserviceaccount.com

    ここで

    • docker-registry には、Kubernetes Secret の名前(この例では gcr-json-key)を指定します。
    • docker-server=gcr.io には、GCR をサーバーとして指定します。
    • docker-username=_json_key は、ユーザー名が JSON キーファイルに含まれていることを指定します。
    • docker-password は、JSON キーファイルからパスワードを使用する場合に指定します。
    • docker-email には、サービス アカウントのメールアドレスを指定します。
  3. 次のいずれかの方法で、Kubernetes Secret を設定します。

    • デフォルトの imagePullSecrets 値を次のように変更します。

      kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "gcr-json-key"}]}'
    • deployment_spec.yaml ファイルを編集して、spec.template.spec 定義に imagePullSecrets 値を追加します。

      spec:
        containers:
        - image: gcr.io/PROJECT_ID/mycontainer-instance:v1.0.0
          name: mycontainer-instance
          ...
        volumes:
        - hostPath:
            path: /sys/fs/cgroup
            type: Directory
          name: cgroups
        imagePullSecrets:
        - name: gcr-json-key

Docker レジストリを使用してターゲット クラスタに基本認証でデプロイする

Docker レジストリを使用して移行イメージを保存する場合は、レジストリでユーザー名とパスワードを使用した基本認証がサポートされている必要があります。Docker レジストリへの読み取り専用接続を構成する方法は多数あるため、クラスタ プラットフォームと Docker レジストリに適した方法を使用する必要があります。

生成されたデプロイ YAML ファイルを適用する

kubectl を使用して、本番環境クラスタなどのターゲット クラスタにデプロイ仕様を適用します。

kubectl

  1. ターゲット クラスタに Docker イメージ レジストリへの読み取りアクセス権が付与されていることを確認します。

  2. コンテナをデプロイします。

    kubectl apply -f deployment_spec.yaml

次のステップ