ステートレス ワークロードを更新する

このページでは、Google Distributed Cloud(GDC)エアギャップ アプライアンス Kubernetes クラスタで実行されている既存のステートレス ワークロードを更新する方法について説明します。リソース使用量と構成の最適化に基づいてアプリケーションが進化するにつれて、Kubernetes クラスタの基盤となる Pod 仕様を更新して、ワークロードの変更を反映する必要があります。

このページは、組織のアプリケーション ワークロードの更新を担当するアプリケーション オペレーター グループ内のデベロッパーを対象としています。

始める前に

このドキュメントのタスクを完了するには、必要な権限をリクエストして環境を準備する必要があります。

IAM ロールをリクエストする

Kubernetes クラスタでステートレス ワークロードを作成、削除、編集、表示するには、組織の IAM 管理者に Namespace 管理者namespace-admin)ロールの付与を依頼してください。このロールはプロジェクトの名前空間にバインドされます。

環境を準備する

事前構成されたベアメタル Kubernetes クラスタに対してコマンドを実行するには、次のリソースがあることを確認します。

  1. Kubernetes クラスタ名を確認するか、プラットフォーム管理者にクラスタ名を確認します。

  2. まだ Kubernetes クラスタの kubeconfig ファイルがない場合は、ログインして生成します。

  3. これらの手順では、Kubernetes クラスタの kubeconfig パスを使用して CLUSTER_KUBECONFIG を置き換えます。

デプロイを更新する

Deployment オブジェクトを更新するには、次のコマンドを実行します。

kubectl --kubeconfig CLUSTER_KUBECONFIG -n NAMESPACE \
    apply -f DEPLOYMENT_FILE

次のように置き換えます。

  • CLUSTER_KUBECONFIG: デプロイを実行している Kubernetes クラスタの kubeconfig ファイル。

  • NAMESPACE: プロジェクトの Namespace。

  • DEPLOYMENT_FILE: 更新する Deployment マニフェスト ファイルの名前。

kubectl apply コマンドは、リソースにマニフェスト ファイルを適用します。指定されたリソースが存在しない場合は、このコマンドによって作成されます。

デプロイ内のリソースを更新する方法は他にもいくつかあります。

コンテナ イメージを更新する

Deployment オブジェクトのイメージを変更するには、次のコマンドを実行します。

kubectl --kubeconfig CLUSTER_KUBECONFIG -n NAMESPACE \
    set image deployment DEPLOYMENT_NAME \
    IMAGE=IMAGE:TAG

次のように置き換えます。

  • CLUSTER_KUBECONFIG: デプロイを実行している Kubernetes クラスタの kubeconfig ファイル。

  • NAMESPACE: プロジェクトの Namespace。

  • DEPLOYMENT_NAME: イメージを含む Deployment オブジェクトの名前。

  • IMAGE: コンテナ イメージの名前です。

  • TAG: コンテナ イメージの更新対象のタグ。

Deployment のイメージを更新すると、セレクタ フィールドやリソース(リクエストや制限など)を変更できます。

たとえば、nginx という名前の Deployment オブジェクトをバージョン 1.9.1 を使用するように更新するには、次のコマンドを実行します。

kubectl --kubeconfig /tmp/kubeconfig.yaml -n my-namespace \
    set image deployment nginx nginx=nginx:1.9.1

更新をロールバックする

デプロイが不安定になった場合など、更新をロールバックするには、kubectl CLI を使用します。Deployment オブジェクトのロールアウト履歴はシステムに保存されるため、いつでもロールバックできます。

進行中の更新または完了した更新を以前のリビジョンにロールバックするには、次のコマンドを実行します。

kubectl --kubeconfig CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME

次のように置き換えます。

  • CLUSTER_KUBECONFIG: デプロイを実行している Kubernetes クラスタの kubeconfig ファイル。

  • NAMESPACE: プロジェクトの Namespace。

  • DEPLOYMENT_NAME: ロールバックする Deployment オブジェクトの名前。

特定のリビジョンにロールバックするには、次のコマンドを実行します。

kubectl --kubeconfig CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME \
    --to-revision=REVISION_NUMBER

次のように置き換えます。

  • CLUSTER_KUBECONFIG: デプロイを実行している Kubernetes クラスタの kubeconfig ファイル。

  • NAMESPACE: プロジェクトの Namespace。

  • DEPLOYMENT_NAME: ロールバックする Deployment オブジェクトの名前。

  • REVISION_NUMBER: ロールバックするリビジョンを定義する整数(3 など)。