新しいKubernetesバージョンへの管理対象ノードのアップグレード

Kubernetes Engine (OKE)で作成したクラスタ内の管理対象ノードでKubernetesバージョンをアップグレードする様々な方法について説明します。

ノート

この項は、管理対象ノードにのみ適用されます。自己管理ノードのアップグレードの詳細は、「既存の自己管理ノードを置き換えることによって新しいKubernetesバージョンへの自己管理ノードのアップグレード」を参照してください。

クラスタ内の管理対象ノードで実行されているKubernetesのバージョンは、次の方法でアップグレードできます:

  • 既存のノード・プールで開始し、ノードをサイクリングする新しい管理対象ノードに対して、より新しいKubernetesバージョンを指定して、インプレース・アップグレードを実行します。まず、既存のノード・プールのプロパティを変更して、より新しいKubernetesバージョンを指定します。次に、ノード・プール内のノードを循環させます。ノードを循環させる場合は、次のいずれかのオプションを選択します。
    • ブート・ボリュームの置換: Kubernetes Engineは、既存のワーカー・ノードを自動的にコード化および排出します。各ワーカー・ノードをホストしているインスタンスのブート・ボリュームは、インスタンスを終了せずに置換されます。インスタンスが実行中状態に戻ると、ホストするワーカー・ノードは、指定したより新しいKubernetesバージョンを実行しています。
    • ノードの置換: Kubernetes Engineは、既存のワーカー・ノードを自動的にコード化、ドレインおよび終了し、新しいワーカー・ノードを作成します。既存のノード・プールで新しいワーカー・ノードが起動されると、指定した新しいKubernetesバージョンが実行されます。

    詳細は、「既存のノード・プールのノードのサイクルによる管理対象ノードKubernetesのインプレース・アップグレードの実行」を参照してください。

  • 既存のノード・プールで開始する新しい管理対象ノードに対してより新しいKubernetesバージョンを指定し、既存の各ノードを手動で削除して新しい管理対象ノードに置き換えることで、インプレース・アップグレードを実行します。まず、既存のノード・プールのプロパティを変更して、より新しいKubernetesバージョンを指定します。次に、各管理対象ノードを順番に削除し、適切なコードおよびドレイン・オプションを選択して、新しいポッドが開始されないようにし、既存のポッドを削除します。削除する各管理対象ノードのかわりに新しい管理対象ノードを起動します。既存のノード・プールで新しい管理対象ノードが起動されると、指定したより新しいKubernetesバージョンが実行されます。既存のノード・プールのノードを手動で削除および置換することによる管理対象ノードKubernetesのインプレース・アップグレードの実行を参照してください。
  • 元のノード・プールを新しいノード・プールに置き換えて、アウトオブプレース・アップグレードを実行します。まず、より新しいKubernetesバージョンで新しいノード・プールを作成します。次に、元のノード・プール内の既存の管理対象ノードをドレインして、新しいポッドが開始されないようにし、既存のポッドを削除します。最後に、元のノード・プールを削除します。新しいノード・プールで新しい管理対象ノードが起動されると、指定した新しいKubernetesバージョンが実行されます。既存のノード・プールを新しいノード・プールに置き換えることによる管理対象ノードKubernetesのアウトオブプレース・アップグレードの実行を参照してください。

すべての場合に、次の点に注意してください。

  • ノード・プール内の管理対象ノードに対して指定する新しいKubernetesバージョンは、クラスタ内で実行されているKubernetesバージョンと互換性がある必要があります。新しいKubernetesバージョンへのクラスタのアップグレードを参照してください。
  • 元のノード・プール内の既存の管理対象ノードをドレインする必要があります。管理対象ノードのドレインを行わない場合、クラスタで実行されているワークロードは中断される可能性があります。