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 チャンネルで検証された後、このチャンネルの変更と新しいバージョンをロールアウトします。これにより、検証により多くの時間をかけることができます。 |
Extended | Regular チャンネルに合わせて | このチャンネルを使用して長期サポートを利用すると、クラスタをできるだけ長くマイナー バージョンで維持することができます。詳しくは、Extended チャンネルで長期サポートを利用するをご覧ください。 |
チャンネルなし(この設定はおすすめしません)。 | Regular チャンネルに合わせて | このオプションはおすすめしません。コントロール プレーンとノードは、Regular チャンネルと Stable チャンネルに合わせて自動アップグレードされます。ノードプール レベルでノードの自動アップグレードを無効にする必要がある場合は、この構成オプションを使用できます。または、リリース チャンネルを使用して、クラスタレベルでノードの自動アップグレードを無効にすることもできます。詳細については、リリース チャンネルに登録されているクラスタと登録されていないクラスタの比較をご覧ください。 |
クラスタをリリース チャンネルに登録すると、そのクラスタは GKE リリース スケジュールの「自動アップグレード」列に示されている日付以降に自動的にアップグレードされます。
Rapid チャンネルに登録されたバージョンは、クラスタでの安定性が確認されると、Regular チャンネルに昇格します。最終的には、優先度の高いアップデートのみを提供する Stable チャンネルに昇格します。昇格はそれぞれ、そのバージョンを実行しているクラスタで観測されたパフォーマンスに基づいて、段階的な安定性レベルと本番環境の対応状況を表します。
重要なセキュリティ パッチは、クラスタと Google のインフラストラクチャを保護するため、すべてのリリース チャンネルに配信されます。まれな緊急事態では、GKE がリリース チャンネルでまだ利用できないバージョンにクラスタを自動アップグレードすることがあります。
チャンネルで利用できるバージョン
各リリース チャンネルには複数のマイナー バージョンがあります。チャンネルで提供されるバージョンは、そのチャンネルの認定基準を満たしています。この利用可能なバージョンのセットには、クラスタ作成のデフォルト バージョンが含まれています。これは、そのチャンネルで利用可能なバージョンのセットから選択されます。リリース チャンネルで使用可能なバージョンを確認するには、リリース チャンネルのデフォルト バージョンと使用可能なバージョンを表示するの説明に従って操作します。
- 新しいパッチのリリースは、すべてのチャンネルで自動アップグレードの対象になる少なくとも 1 週間前から利用可能になります。
- 新しいマイナー リリースは、次のように利用可能になります。
- Rapid チャンネルの自動アップグレード ターゲットになる少なくとも 2 週間前。
- Regular チャンネルと Stable チャンネルで自動アップグレードの対象になる少なくとも 4 週間前。
本番環境をアップグレードする前に、新しく利用可能になった GKE バージョンをテストできます。たとえば、アップグレードの通知に登録すると、新しく利用可能になったバージョンに関する通知を受け取り、本番環境クラスタの自動アップグレードのターゲットになる前に本番前環境を新しいバージョンにアップグレードできます。
アップグレードの前に新しいバージョンを検証またはテストするなど、クラスタを特定のバージョンのままにする必要がある場合は、メンテナンスの除外を使用することをおすすめします。
マイナー バージョンは、リリース チャンネルで利用可能になってからサポート終了日になるまで、そのリリース チャンネルで新規または既存のクラスタに使用できます。
リリース チャンネルでバージョンが自動アップグレードのターゲットになった場合
GKE リリースノートには、2024-R33 ノートなどのバージョン アップデートで、特定のマイナー バージョンを実行するクラスタの新しい自動アップグレードのターゲットが記載されています。新しい自動アップグレード ターゲットが利用可能になると、GKE は特定のクラスタをその新しいバージョンにアップグレードする必要があるかどうかを評価します。GKE は、クラスタに自動アップグレードを妨げるメンテナンス ポリシーやその他の制約があるかどうかを検討します。まれな緊急事態を除き、これらの理由は無視されません。特定のクラスタの自動アップグレード ターゲットを取得するには、クラスタのアップグレードに関する情報を取得する(プレビュー)をご覧ください。
リリース チャンネルで新しいバージョンがクラスタのマイナー バージョンの自動アップグレード ターゲットになってから 10 日が経過してもクラスタの自動アップグレードが開始しない場合は、次のいずれかの理由が考えられます。
- クラスタが一時的に自動アップグレードの対象外になっている。次の原因が考えられます。
- クラスタが、構成されたメンテナンスの時間枠の期間内でない。
- クラスタが、メンテナンスの除外の期間中である。
- 新しいマイナー バージョンで削除される非推奨の Kubernetes 機能がクラスタで使用されているため、自動アップグレードが一時的に停止している。
- 24 時間以内にクラスタがパッチ バージョンに自動的にアップグレードされた。
- 30 日以内にクラスタがマイナー バージョンに自動的にアップグレードされ、自動アップグレードのターゲットが新しいマイナー バージョンになった。
- 技術的またはビジネス上の理由で、GKE が新しい自動アップグレード ターゲットのロールアウトを一時停止した。
- 新しいバージョンで技術的な問題が見つかった。
- ブラック フライデーなど、重要なビジネス シーズンが原因で、本番環境がフリーズします。
デフォルトのバージョンは何ですか。
リリース チャンネルでクラスタを作成すると、デフォルトでは、選択したリリース チャンネルのクラスタ作成のデフォルト パッチ バージョンがクラスタで使用されます。ただし、リリース チャンネルでクラスタを作成するときに、使用可能な別のバージョンを指定できます。
リリース チャンネルには、リリース チャンネルで利用可能な複数のマイナー バージョンがあります。デフォルト バージョンは、リリース チャンネルの自動アップグレード ターゲットの 1 つになる場合があります。
新しいチャンネルからのパッチ バージョンの実行
リリース チャンネルに記載されている利用可能なパッチ バージョンに加えて、クラスタのリリース チャンネルでマイナー バージョンが利用可能で、gcloud CLI または GKE API を使用している場合は、クラスタが登録されているリリース チャンネルよりも新しいリリース チャンネルのパッチ バージョンを実行できます。
たとえば、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 チャンネルに登録されている新しいクラスタを作成することもできます。
GKE は、クラスタが登録されているチャンネルで新しい自動アップグレードのターゲットが利用可能になるまで、クラスタを新しいチャンネルのパッチ バージョンのままにします。
チャンネルの最新情報の確認
リリース チャンネルの新機能については、リリースノートをご覧ください。 全体を対象とするリリースノートだけではなく、各リリース チャンネルごとに個別のリリースノートも提供されています。
リリース チャンネル | リリースノート |
---|---|
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 がスキップするためです。ノードは、コントロール プレーン バージョンに合わせて、脆弱性やサポートされていないバージョン スキューから保護するために、選択したチャンネルの推奨バージョンに自動的にアップグレードされます。
Extended チャンネルで長期サポートを利用する
GKE は、Extended チャンネルを通じて Kubernetes のマイナー バージョンの長期サポートを提供しています。このチャンネルでは、マイナー バージョンを最大 24 か月間使用できます。14 か月の標準サポート期間が終了すると、クラスタは Extended サポート期間でさらに約 10 か月間セキュリティ パッチを受け取ります。
GKE が Extended チャンネルでクラスタを自動的にアップグレードする仕組み
Extended チャンネルに登録されているクラスタの場合、GKE は次の方法でクラスタを自動的にアップグレードします。
- 標準サポートの期間中: GKE は、Regular チャンネルと同じ頻度で、クラスタを同じマイナー バージョンの新しいパッチ バージョンにアップグレードします。
- 延長サポートの期間中: GKE は、マイナー バージョンのセキュリティ パッチ アップデートを引き続き提供します。延長サポートの終了の約 2 か月前に、GKE はクラスタを次のマイナー バージョンにアップグレードし始めます。ただし、クラスタで非推奨の機能や API が使用されている場合は除きます。メンテナンスの除外を使用すると、延長サポートの終了までマイナー バージョンのアップグレードを防ぐことができます。
- 延長サポートの終了時: GKE は、ブロックする問題に関係なく、サポート対象外のマイナー バージョンを実行しているクラスタをすべてアップグレードします。この日付を過ぎたメンテナンスの除外は構成できません。
利用期間と拡張サポート期間中に GKE が提供するアップグレードの詳細については、GKE のマイナー バージョンのライフサイクルをご覧ください。
Extended チャンネルにクラスタを登録する場合の制限事項
Extended チャンネルに登録できるのは、バージョン 1.27 以降を実行している Standard クラスタのみです。クラスタ コントロール プレーンとノードでは、1.27 以降を実行する必要があります。
次の機能を使用する場合は、Extended チャンネルにクラスタを登録できません。
- Autopilot クラスタモード
- アルファ クラスタ
- 明示的に有効になっている Kubernetes ベータ版 API
- Gateway
- Windows Server ノードプール
- カスタマイズされた sysctl 構成オプション
- Backup for GKE
- Config Connector
- 次のマルチクラスタ機能:。
延長サポートの料金
クラスタを Extended チャンネルに登録する場合は、拡張サポートの料金を確認してください。プロジェクトで GKE Enterprise が有効になっている場合、追加料金なしでクラスタを Extended チャンネルに登録できます。また、GKE Standard エディション クラスタの場合は、クラスタが Extended チャンネルに登録され、クラスタのマイナー バージョンが拡張サポート期間に入ると、従量課金が適用されます。
Extended チャンネルのベスト プラクティス
次のシナリオで、Extended チャンネルを使用してマイナー バージョンのアップグレードによる中断を最小限に抑える方法を理解してください。
サポートされているシナリオでは、チャンネルを最大限に活用するため、時間の経過とともに手動での操作が必要になります。次のマイナー バージョンに移行する予定がない場合は、クラスタをチャンネルに登録しないことをおすすめします。GKE は最終的に、他のチャンネルと同じ頻度でクラスタを新しいマイナー バージョンにアップグレードします。クラスタでコストが増加し、最後に新機能が提供される可能性があります。
サポートされているシナリオとサポートされていないシナリオ
サポートされているシナリオとサポートされていないシナリオの詳細については、次の表をご覧ください。詳しくは、長期サポートが必要な場合に Extended チャンネルを使用するをご覧ください。チェックマーク()は、サポートされているシナリオであることを示します。
アップグレード シナリオ | サポート対象 | 概要 | マイナー バージョンの変更間隔 | 手動での対応が必要 |
---|---|---|---|---|
マイナー バージョンを長期間維持する | アップグレードを妨げる問題を軽減するため、マイナー バージョンのままにします。 | 平均的な頻度は同じですが、1 つのマイナー バージョンでの中断時間が長くなります。 |
|
|
マイナー バージョンを年に 1~2 回手動でアップグレードする | クラスタ内のワークロードに最適な場合も、マイナー アップグレードの頻度を下げて新しい機能を入手します。 | 年に 1~2 回。 |
|
|
何もせずに同じ頻度でマイナー アップグレードを受け取る | 他のチャンネルと同じ頻度でマイナー バージョンのアップグレードを受け取り、新機能はできるだけ遅く受け取ります。 | 平均 4 か月ごと |
|
リリース チャンネルに登録されていないクラスタ
リリース チャンネルに登録されていないクラスタには制限があるため、この構成オプションはおすすめしませんが、リリース チャンネルに Standard クラスタを登録しないように選択することもできます(「チャンネルなし」、旧称「静的」)。個々のノードプールを自動的にアップグレードできず、代わりに手動でアップグレードする必要がある場合を除き、このオプションは使用しないでください。クラスタがリリース チャンネルに登録されていない場合は、選択したノードプールでノードの自動アップグレードを無効にできます。リリース チャンネルを使用すると、すべてのノードプールに対してクラスタレベルで同じ結果を得ることができます。ただし、リリース チャンネルに登録しているかどうかに関係なく、クラスタのコントロール プレーンは自動的にアップグレードされ、バージョンがサポート終了になると、クラスタのコントロール プレーンとノードが自動的にアップグレードされます。
Standard クラスタ全体またはそのすべてのノードプールの自動アップグレードを防止する場合は、リリース チャンネルに登録されたクラスタでメンテナンスの除外を使用することをおすすめします。メンテナンスの除外を使用すると、すべてのノードプールのノードの自動アップグレードを一時的に無効にできます。一方、クラスタがリリース チャンネルに登録されていない場合は、ノードプール レベルでノードの自動アップグレードを無効にできます。
リリース チャンネルに登録されているクラスタと登録されていないクラスタの比較
次の表で、リリース チャンネルにクラスタを登録する場合と登録しない場合の類似点と違いを確認してください。
機能 | リリース チャンネルに登録されているクラスタ | リリース チャンネルに登録されていないクラスタ |
---|---|---|
共有アップグレードの動作 |
|
|
アップグレードのタイミング | それぞれのリリース チャンネルに合わせる |
|
ノードプールの中断の制御 |
|
|
メンテナンスの時間枠 | 利用可能 | 利用可能 |
メンテナンスの除外 |
使用可能なメンテナンスの除外スコープ:
|
「アップグレードなし」スコープ(30 日間)に制限付き |
ロールアウト シーケンス | フリートベースおよびスコープベースのシーケンスで利用可能 | 利用不可 |
長期サポート | Extended リリース チャンネルでのみ可能 | 利用不可 |
Autopilot | 利用可能 | 利用不可 |
Rapid チャンネル クラスタとアルファ クラスタの違い
Rapid リリース チャンネルを使用して作成されたクラスタは、アルファ クラスタではありません。以下の点が異なります。
- リリース チャンネルを使用するクラスタはアップグレード可能です。自動アップグレードが有効であり、無効にはできません。アルファ クラスタはアップグレードできません。
- リリース チャンネルを使用するクラスタに有効期限はありません。アルファ クラスタは 30 日後に期限が切れます。
- アルファ版 Kubernetes API は、リリース チャンネルを使用するクラスタでは有効化できません。
次のステップ
- リリース チャンネルを使用する
- クラスタのアップグレードについて理解する。
- クラスタのアップグレードを可視化する(プレビュー)
- クラスタのアップグレード通知を受け取る方法を確認する。
- ロールアウト シーケンスを使用して、環境全体でクラスタの自動アップグレードを管理する方法を学習します。