Linux ワークロードをターゲット クラスタにデプロイする
ソースプラット フォームからワークロードを移行したら、そのプロセスで生成されたデプロイ アーティファクトを使用して、移行したワークロード コンテナを別のクラスタにデプロイできます。
Skaffold は、アプリケーションのビルド、push、デプロイのワークフローを処理できます。詳細については、Skaffold を使用して複数のイメージをビルドしてデプロイするをご覧ください。
始める前に
ワークロードをデプロイする前に、次の処理を完了しておく必要があります。
- Migrate to Containers ツールを使用してワークロードの移行を完了する。
- 生成された Deployment ファイルを確認する。
ターゲット クラスタにデプロイする
以降のセクションでは、クラスタにワークロードをデプロイするためのオプションについて説明します。
Docker レジストリとして GCR を使用してターゲット クラスタにデプロイする
ターゲット クラスタが Container Registry(GCR)にアクセスできるようにするには、GCR へのアクセスに必要な認証情報を含む Kubernetes Secret を作成します。
Container Registry と Cloud Storage にアクセスするためのサービス アカウントを作成するで説明されているように、移行をデプロイするためのサービス アカウントを作成します。
このプロセスでは、
m4a-install.json
という名前の JSON キーファイルをダウンロードする必要があります。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
には、サービス アカウントのメールアドレスを指定します。
次のいずれかの方法で、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
ターゲット クラスタに Docker イメージ レジストリへの読み取りアクセス権が付与されていることを確認します。
コンテナをデプロイします。
kubectl apply -f deployment_spec.yaml
次のステップ
- 移行後のイメージの更新を完了する方法を確認する。