リリース チャンネルについて


Google Kubernetes Engine(GKE)のリリース チャンネルを使用して、機能の可用性と安定性のバランスを考慮してクラスタのバージョンを選択します。

GKE は、リリース チャンネルに登録されていないクラスタを含むすべてのクラスタを自動的にアップグレードし、クラスタにセキュリティ アップデート、既知の問題の修正、新機能を適用して、サポートされている Kubernetes バージョンが実行されるようにします。アップグレードのタイミングは、メンテナンスの時間枠と除外で制御できます。

クラスタをリリース チャンネルに登録することをおすすめします。これにより、メンテナンスの除外範囲に関して最大限の制御が可能になります。すべてアップグレードするのではなく、特定のタイプのアップグレードを一時的に回避したり、クラスタ アップグレードのロールアウト シーケンスを制御できます。Autopilot クラスタはリリース チャンネルにのみ登録できます。

リリース チャンネルに Standard クラスタを登録しない場合は、選択したノードプールのノードの自動アップグレードを無効にし、ノードプール内のノードのアップグレードを手動で管理します。ただし、クラスタのコントロール プレーンは自動的にアップグレードされ、バージョンがサポート終了になると、リリース チャンネルに登録しているかどうかに関係なく、クラスタのコントロール プレーンとノードが自動的にアップグレードされます。詳細については、クラスタをリリース チャンネルに登録しない場合をご覧ください。

利用できるチャンネル

次の表に、利用可能なリリース チャンネルのプロパティを示します。各プロパティには、機能の可用性と更新チャーンの間にトレードオフがあります。どのチャンネルから提供されるリリースもサポート対象の GKE リリースであり、一般提供(GA)と見なされます(ただし、個々の機能は必ずしも一般提供とは限りません)。これらのチャンネルの Kubernetes リリースは正式な Kubernetes リリースであり、一般提供とベータ版の両方の Kubernetes API が含まれています。

チャネル 新しい Kubernetes リリースの可用性 このチャネルを使用するタイミング
Rapid アップストリーム オープンソースの一般提供から数週間 Kubernetes の最新リリースをできるだけ早く入手しておくと、一般提供が開始されたときにすぐに新しい GKE 機能を使用できます。クラスタは、パッチ バージョンが常に最新に保たれるように頻繁に更新され、新しい Kubernetes 機能が提供されます。Rapid チャンネルに登録したクラスタは一般提供バージョンを使用しますが、Rapid チャンネルを使用して本番前環境で新しい Kubernetes バージョンと API をテストすることをおすすめします。
Regular(デフォルト) Rapid でのリリースから 2~3 か月後 一般提供後の比較的早い段階で GKE と Kubernetes の新機能を使用できます。ただし、より長い期間かけて認定されたバージョンに限られます。機能の可用性とリリースの安定性のバランスが取れているため、ほとんどのユーザーにおすすめです。
Stable Regular でのリリースから 2~3 か月後 新機能よりも安定性を優先します。GKE は、Rapid チャンネルと Regular チャンネルで検証された後、このチャンネルの変更と新しいバージョンをロールアウトします。これにより、検証により多くの時間をかけることができます。

クラスタをリリース チャンネルに登録すると、そのクラスタは GKE リリース スケジュールの「アップグレード」列に示されている日付以降に自動的にアップグレードされます。

Rapid チャンネルに登録されたバージョンは、クラスタでの安定性が確認されると、Regular チャンネルに昇格します。最終的には、優先度の高いアップデートのみを提供する Stable チャンネルに昇格します。昇格はそれぞれ、そのバージョンを実行しているクラスタで観測されたパフォーマンスに基づいて、段階的な安定性レベルと本番環境の対応状況を表します。

重要なセキュリティ パッチは、クラスタと Google のインフラストラクチャを保護するため、すべてのリリース チャンネルに配信されます。

チャンネルで利用できるバージョン

各リリース チャンネルには、そのチャンネルで利用可能な一連のバージョンから選択されたデフォルト バージョンがあります。チャンネルで提供されるバージョンは、そのチャンネルの認定基準を満たしています。時間が経過すると、GKE はクラスタをデフォルト バージョンに自動的にアップグレードします。

  • 新しいパッチのリリースは、すべてのチャンネルでデフォルトになる少なくとも 1 週間前から利用可能になります。
  • 新しいマイナー リリースは、次のように利用可能になります。
    • Rapid チャンネルでデフォルトになる少なくとも 2 週間前。
    • Regular チャンネルと Stable チャンネルでデフォルトになる少なくとも 4 週間前。

本番環境をアップグレードする前に、新しく利用可能になった GKE バージョンをテストできます。たとえば、アップグレードの通知に登録すると、新しく利用可能になったバージョンに関する通知を受け取り、デフォルト バージョンになる前に本番前環境を新しいバージョンにアップグレードできます。

アップグレードの前に新しいバージョンを検証したり、テストする場合など、クラスタを特定のバージョンにしておく必要がある場合は、メンテナンスの除外を使用することをおすすめします。

バージョン 1.19 以降では、マイナー バージョンは、リリース チャンネルで利用可能になってからサポート終了日になるまで、そのリリース チャンネルで新規または既存のクラスタに使用できます。

リリース チャンネルのデフォルト バージョンと使用可能なバージョンを表示する

リリース チャンネルのデフォルト バージョンと利用可能なバージョンを表示するには、次のコマンドを実行します。COMPUTE_ZONE は、コンピューティング ゾーンに置き換えます。

gcloud container get-server-config --format "yaml(channels)" --zone COMPUTE_ZONE

リリース チャンネルに登録されていないクラスタで利用可能なバージョンを確認するには、該当するリリース チャンネルのコマンドを実行します。コマンドの "yaml(channels)""yaml(validMasterVersions)" に置き換えます。

リリース チャンネルで新しいバージョンがデフォルトになった場合

リリース チャンネルで新しい GKE バージョンがデフォルトになった場合:

  • 新しいクラスタは、選択したリリース チャンネルで新しいデフォルト バージョンを使用して作成されます。
  • 対象となる既存のクラスタは、新しいバージョンがリリース チャンネルでデフォルトになってから 10 日以内に自動的にアップグレードされます。

リリース チャンネルで新しいバージョンがデフォルトになってから 10 日が経過してもクラスタの自動アップグレードが開始しない場合は、次のいずれかの理由が考えられます。

  • クラスタが一時的に自動アップグレードの対象外になっている。次の原因が考えられます。
    • クラスタが、構成されたメンテナンスの時間枠の期間内でない。
    • クラスタが、メンテナンスの除外の期間中である。
    • 新しいマイナー バージョンで削除される非推奨の Kubernetes 機能がクラスタで使用されているため、自動アップグレードが一時的に停止している。
    • 24 時間以内にクラスタがパッチ バージョンに自動的にアップグレードされた。
    • 30 日以内にクラスタがマイナー バージョンに自動的にアップグレードされ、新しいデフォルト バージョンが新しいマイナー バージョンになった。
  • 技術的またはビジネス上の理由で、GKE が新しいデフォルト バージョンのロールアウトを一時的に停止した。
    • 新しいバージョンで技術的な問題が見つかった。
    • ブラック フライデーなど、重要なビジネス シーズンが原因で、本番環境がフリーズしている。

新しいチャンネルからパッチ バージョンを実行する

GKE では、リストにあるリリース チャンネルの利用可能なバージョンに加えて、成熟度の低いリリース チャンネルのパッチ バージョンに対するアクセスも制限されています。リリース チャンネルに登録されたクラスタでは、新しいチャンネルのマイナー バージョンが、クラスタ独自のリリース チャンネルで利用可能なマイナー バージョンと同じ場合、新しいチャンネルのパッチ バージョンを使用する場合があります。

たとえば、Rapid チャンネルと Regular チャンネルで次のバージョンが利用できる場合:

  • Rapid: 1.23.2-gke.700、1.22.4-gke.1500
  • Regular: 1.21.4-gke.400、1.22.1-gke.400

GKE バージョン 1.22.1-gke.400 を実行し、Regular チャンネルに登録されているクラスタは、1.22.4-gke.1500 にアップグレードできますが、マイナー バージョンが異なる 1.23.2-gke.700 にはアップグレードできません。

新しいチャンネルのパッチ バージョンにアップグレードするには、クラスタのコントロール プレーンが同じマイナー バージョンでパッチリリースを実行する必要があります。たとえば、クラスタで 1.21.3-gke.200 を実行している場合は、まず、現在のリリース チャンネル(1.22.1-gke.400)で利用可能なパッチ バージョンにクラスタをアップグレードする必要があります。その後、クラスタを 1.22.4-gke.1500 にアップグレードできます。

また、1.22.4-gke.1500 を実行し、Regular チャンネルに登録されている新しいクラスタを作成することもできます。

クラスタが登録されているチャンネルのデフォルト バージョンがクラスタ バージョンより大きくなるまで、クラスタは成熟度の低いチャンネルのパッチ バージョンのままとなります。大きくなると、クラスタはデフォルト バージョンに自動的にアップグレードされます。

チャンネルの最新情報を確認する

リリース チャンネルの新機能については、リリースノートをご覧ください。全体を対象とするリリースノートだけではなく、各リリース チャンネルごとに個別のリリースノートも提供されています。

リリース チャンネル リリースノート
Rapid チャンネル HTML または Atom フィード
Regular チャンネル HTML または Atom フィード
Stable チャンネル HTML または Atom フィード

クラスタに最適なリリース チャンネルを選択する

チャンネルには一般提供版の Kubernetes のみが含まれ、各チャンネルは Kubernetes および GKE リリースの品質レベルと成熟度を表します。次の図は、リリース チャンネルの導入サイクルを示しています。

リリース チャンネルの導入サイクル

この図に示されているように、利用可能なリリース チャンネルは、導入サイクルの途中でアーリー アドプター(Rapid チャンネル)、アーリー マジョリティ(Regular チャンネル)、マジョリティ(Stable チャンネル)などのバージョンを使用します。導入サイクルの最初の部分は、アップストリームの Kubernetes リリースを使用して最新機能をテストするイノベーターです。導入サイクルの最後の部分はレイト マジョリティです。サポート終了が近づいているバージョンを使用しているため、サポート対象バージョンに移行する必要があります。

本番前環境では、新しいバージョンに Rapid チャンネルを使用して、一般提供が開始したらすぐに機能をテストできます。

新しい機能より成熟度が重要となる本番環境のワークロードには、Regular(デフォルト)チャンネルまたは Stable チャンネルを使用することをおすすめします。

  • 新機能を詳しくトラッキングする必要がある場合は、Regular チャンネルの使用を検討してください。このチャンネルでは、Kubernetes OSS バージョンの安定性と鮮度のバランスが保たれます。
  • 要件が成熟度の場合(特に本番環境クラスタの場合)、Stable チャンネルを使用します。

GKE は、クラスタをチャンネルの品質基準に適合する新しいバージョンにアップグレードします。ただし、次の目的のため、クラスタを事前にアップグレードしておくことをおすすめします。

  • アップグレードの制御と業務時間との調整がしやすくなる。
  • 予測がしやすくなる。これは、リリース ターゲットを満たすクラスタ(つまり、次のターゲット バージョンに手動でアップグレードされたクラスタ)の自動アップグレードを GKE がスキップするためです。ノードは、コントロール プレーン バージョンに合わせて、脆弱性やサポートされていないバージョン スキューから保護するために、選択したチャンネルの推奨バージョンに自動的にアップグレードされます。

リリース チャンネルにクラスタを登録する

このセクションでは、新しいクラスタや、リリース チャンネルを使用していない既存のクラスタにリリース チャンネルを選択する方法について説明します。すでにリリース チャンネルに登録されている既存のクラスタのリリース チャンネルを変更することもできます。

この変更によるダウンタイムはありません。ただし、GKE ではリリース チャンネルで使用可能な自動アップグレードが異なるため、メンテナンスの時間枠と除外を使用してアップグレードのタイミングを制御することをおすすめします。

新しいクラスタを登録する

リリース チャンネルで新しいクラスタを作成して登録するには、gcloud CLI または Google Cloud コンソールを使用します。デフォルトでは、新しいクラスタは Regular リリース チャンネルに自動的に登録されます。

コンソール

GKE Standard クラスタの場合、Google Cloud コンソールで作成するときに別のチャンネルを指定できます。

  1. Google Cloud コンソールで Google Kubernetes Engine のページに移動します。

    Google Kubernetes Engine に移動

  2. [ 作成] をクリックします。

  3. [Standard] セクションで [構成] をクリックします。

  4. [コントロール プレーンのバージョン] で、[リリース チャンネル] オプションがデフォルトで選択されています。

  5. [リリース チャンネル] プルダウン リストで、クラスタを登録するリリース チャンネルを選択するか、デフォルト値の [Regular チャンネル] のままにします。

  6. 必要に応じて、クラスタの作成を続行します。

  7. [作成] をクリックします。

gcloud

標準クラスタを作成して特定のリリース チャンネルに登録するには、次のコマンドを実行します。

gcloud container clusters create CLUSTER_NAME \
    --zone COMPUTE_ZONE \
    --release-channel CHANNEL \
    ADDITIONAL_FLAGS

Autopilot クラスタを作成して特定のリリース チャネルに登録するには、次のコマンドを実行します。

gcloud container clusters create-auto CLUSTER_NAME \
    --region=COMPUTE_REGION
    --release-channel CHANNEL \
    ADDITIONAL_FLAGS

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

  • CLUSTER_NAME: 新しいクラスタの名前。
  • リージョン クラスタの場合は、--region COMPUTE_REGION フラグを使用して、クラスタのリージョンを指定します。
  • ゾーンクラスタの場合は、--region COMPUTE_ZONE フラグを使用して、クラスタのゾーンを指定します。
  • CHANNEL: リリース チャンネルのタイプ。rapidregularstable のいずれか。
  • ADDITIONAL_FLAGS: クラスタの作成時に指定する必要がある他のフラグ。標準クラスタのオプション フラグのリストについては、gcloud container clusters create のドキュメントをご覧ください。Autopilot クラスタのオプション フラグのリストについては、gcloud container clusters create-auto のドキュメントをご覧ください。

--cluster-version フラグを使用して、特定のバージョンのクラスタを作成することもできます。リリース チャンネルを指定しない場合、クラスタは、そのバージョンが利用できる最も新しいリリース チャンネルに登録されます。

リリース チャンネルまたはクラスタ バージョンを指定しない場合、クラスタはデフォルト バージョンの regular リリース チャンネルに登録されます。

既存のクラスタを登録する

クラスタのコントロール プレーン バージョンがターゲット リリース チャンネルで使用できる場合は、既存のクラスタをリリース チャンネルに登録できます。クラスタのコントロール プレーン バージョンがターゲット リリース チャンネルで使用できるかどうかを確認するには、リリース チャンネルのデフォルト バージョンと使用可能なバージョンを表示します。クラスタのコントロール プレーンのバージョンをターゲット リリース チャンネルで使用可能なバージョンに合わせる方法については、新しいリリース チャンネルを選択するをご覧ください。

登録するため、目的の CHANNELクラスタ リリース チャンネルを更新します。

クラスタのリリース チャンネルを確認する

クラスタのリリース チャンネルを確認するには、gcloud CLI または Google Cloud コンソールを使用します。

コンソール

  1. Google Cloud コンソールで Google Kubernetes Engine のページに移動します。

    Google Kubernetes Engine に移動

  2. 検査するクラスタの名前をクリックします。

  3. [クラスタの基本] で、[リリース チャンネル] フィールドの値(Regular チャンネルなど)を確認します。

gcloud

gcloud container clusters describe CLUSTER_NAME \
    --zone COMPUTE_ZONE --format="value(releaseChannel.channel)"

以下を置き換えます。

クラスタのリリース チャンネルを変更する

コントロール プレーンのバージョンがターゲット リリース チャンネルで使用できる場合は、クラスタのリリース チャンネルを変更できます。場合によっては、クラスタのコントロール プレーンを使用可能なバージョンにアップグレードまたはダウングレードする必要があります。

クラスタのコントロール プレーン バージョンがターゲット リリース チャンネルで使用できるかどうかを確認するには、リリース チャンネルのデフォルト バージョンと使用可能なバージョンを表示します。バージョンは、ターゲット チャンネルで利用可能である必要があります。

  • クラスタのコントロール プレーンのバージョンがターゲット リリース チャンネルですでに利用可能な場合は、新しいリリース チャンネルを選択できます。
  • クラスタのコントロール プレーン バージョンがターゲット リリース チャンネルで使用できない場合は、クラスタのコントロール プレーンを使用可能なバージョンにアップグレードできます。あるいは、ターゲット チャンネルに以前のバージョンしか利用できない場合は、クラスタをダウングレードできます。ただし、ターゲット バージョンが同じマイナー バージョンからの以前のパッチリリースであることが条件です。

新しいリリース チャンネルを選択するには、ターゲットの CHANNELクラスタ リリース チャンネルを更新します。新しいチャンネルを選択するときにクラスタの自動アップグレードを一時的に無効にするには、新しいチャンネルを選択する前にメンテナンスの除外を構成します。

クラスタがリリース チャンネルで利用できないバージョンを実行しているために、ターゲット リリース チャンネルを選択できない場合は、ターゲット チャンネルに新しいクラスタを作成してワークロードを移行できます。また、既存のクラスタを使用する必要がある場合は、次の操作を行います。

  1. スコープを「マイナー アップグレードなし」にして、メンテナンスの除外を構成します。
  2. クラスタの Kubernetes マイナー バージョンがターゲット リリース チャンネルで利用可能になるまで待ちます。
  3. ターゲット リリース チャンネルに既存のクラスタを登録します。

クラスタのリリース チャンネルを更新する

クラスタのリリース チャンネルを変更するには、gcloud CLI または Google Cloud コンソールを使用します。

コンソール

  1. Google Cloud コンソールで Google Kubernetes Engine のページに移動します。

    Google Kubernetes Engine に移動

  2. 検査するクラスタの名前をクリックします。

  3. [クラスタの基本] の [リリース チャンネル] フィールドで、 をクリックします。

  4. [リリース チャンネル] プルダウンで、ターゲット リリース チャンネルを選択します。

  5. [この条件に同意します] を選択して、警告を受け入れます。

  6. [変更内容を保存] をクリックします。

gcloud

既存のクラスタのリリース チャンネル プロパティを変更します。

gcloud container clusters update CLUSTER_NAME \
  --release-channel CHANNEL

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

  • CLUSTER_NAME: クラスタの名前。
  • CHANNEL: ターゲット リリース チャンネル(rapidregularstableNone のいずれか)。

クラスタをリリース チャンネルに登録しない場合

リリース チャンネルに Standard クラスタを登録しないように選択することもできます(「チャンネルなし」、「静的」クラスタともいいます)。リリース チャンネルに登録されていないクラスタには制限があります。一部のノードプールを自動的にアップグレードできず、代わりに手動でアップグレードする必要がある場合にのみ、このオプションを使用してください。クラスタがリリース チャンネルに登録されていない場合は、選択したノードプールでノードの自動アップグレードを無効にできます。

クラスタ全体またはそのすべてのノードの自動アップグレードを一時的に無効にするには、リリース チャンネルに登録されたクラスタでメンテナンスの除外を使用します。メンテナンスの除外を使用すると、すべてのノードプールのノードの自動アップグレードを一時的に無効にできます。一方、クラスタがリリース チャンネルに登録されていない場合は、ノードプール レベルでノードの自動アップグレードを無効にできます。

次の表で、リリース チャンネルにクラスタを登録する場合と登録しない場合の類似点と違いを確認してください。

機能 リリース チャンネルに登録されているクラスタ リリース チャンネルに登録されていないクラスタ
共有アップグレードの動作
アップグレードのタイミング それぞれのリリース チャンネルに合わせる
  • マイナー バージョンとパッチ バージョンの場合、自動アップグレードの開始日は Stable チャンネルと同じ
  • マイナー バージョンの提供は Regular チャンネルと同じ
  • Regular チャンネルで利用可能なマイナー バージョンについては、パッチ バージョンの提供は Rapid チャンネルと同じ
ノードプールの中断の制御
メンテナンスの時間枠 利用可能 利用可能
メンテナンスの除外 使用可能なメンテナンスの除外スコープ:
  • アップグレードなし(30 日間)
  • マイナー アップグレードなし(6 か月)
  • マイナー アップグレードまたはノード アップグレードなし(6 か月)
「アップグレードなし」スコープ(30 日間)に制限付き
ロールアウト シーケンス フリートベースおよびスコープベースのシーケンスで利用可能 利用不可
Autopilot 利用可能 利用不可

リリース チャンネルの登録を解除する

リリース チャンネルから Standard クラスタの登録を解除するには、Google Cloud コンソール、gcloud CLI、または Kubernetes Engine API を使用します。また、クラスタの作成時にリリース チャンネルにクラスタを登録しないように指定することもできます。

コンソール

  1. Google Cloud コンソールで Google Kubernetes Engine のページに移動します。

    Google Kubernetes Engine に移動

  2. 検査するクラスタの名前をクリックします。

  3. [クラスタの基本] の [リリース チャンネル] フィールドで、 をクリックします。

  4. [Static version] ラジオボタンを選択します。

  5. [この条件に同意します] を選択して、警告を受け入れます。

  6. [変更内容を保存] をクリックします。

gcloud

クラスタのリリース チャンネルを None の値に更新します。

gcloud container clusters update CLUSTER_NAME \
  --release-channel None

API

クラスタを作成または更新するときに、"releaseChannel": { "channel": UNSPECIFIED} を指定します。

注意点

リリース チャンネルを使用するときは、次の注意事項に留意してください。

Rapid チャンネル クラスタとアルファ クラスタの違い

Rapid リリース チャンネルを使用して作成されたクラスタは、アルファ クラスタではありません。以下の点が異なります。

  • リリース チャンネルを使用するクラスタはアップグレード可能です。自動アップグレードが有効であり、無効にはできません。アルファ クラスタはアップグレードできません。
  • リリース チャンネルを使用するクラスタに有効期限はありません。アルファ クラスタは 30 日後に期限が切れます。
  • アルファ版 Kubernetes API は、リリース チャンネルを使用するクラスタでは有効化できません。

次のステップ