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 のインフラストラクチャを保護するため、すべてのリリース チャンネルに配信されます。
チャンネルで利用できるバージョン
各リリース チャンネルには複数のマイナー バージョンがあります。チャンネルで提供されるバージョンは、そのチャンネルの認定基準を満たしています。この利用可能なバージョンのセットには、クラスタ作成のデフォルト バージョンが含まれています。これは、そのチャンネルで利用可能なバージョンのセットから選択されます。リリース チャンネルで使用可能なバージョンを確認するには、リリース チャンネルのデフォルト バージョンと使用可能なバージョンを表示するの説明に従って操作します。
- 新しいパッチのリリースは、すべてのチャンネルでデフォルトになる少なくとも 1 週間前から利用可能になります。
- 新しいマイナー リリースは、次のように利用可能になります。
- Rapid チャンネルでデフォルトになる少なくとも 2 週間前。
- Regular チャンネルと Stable チャンネルでデフォルトになる少なくとも 4 週間前。
本番環境をアップグレードする前に、新しく利用可能になった GKE バージョンをテストできます。たとえば、アップグレードの通知に登録すると、新しく利用可能になったバージョンに関する通知を受け取り、デフォルト バージョンになる前に本番前環境を新しいバージョンにアップグレードできます。
アップグレードの前に新しいバージョンを検証したり、テストする場合など、クラスタを特定のバージョンにしておく必要がある場合は、メンテナンスの除外を使用することをおすすめします。
マイナー バージョンは、リリース チャンネルで利用可能になってからサポート終了日になるまで、そのリリース チャンネルで新規または既存のクラスタに使用できます。
リリース チャンネルで新しいバージョンがデフォルトになった場合
リリース チャンネルで新しい GKE バージョンがデフォルトになった場合:
- 新しいクラスタは、選択したリリース チャンネルで新しいデフォルト バージョンを使用して作成されます。
- 対象となる既存のクラスタは、新しいバージョンがリリース チャンネルでデフォルトになってから 10 日以内に自動的にアップグレードされます。
リリース チャンネルで新しいバージョンがデフォルトになってから 10 日が経過してもクラスタの自動アップグレードが開始しない場合は、次のいずれかの理由が考えられます。
- クラスタが一時的に自動アップグレードの対象外になっている。次の原因が考えられます。
- クラスタが、構成されたメンテナンスの時間枠の期間内でない。
- クラスタが、メンテナンスの除外の期間中である。
- 新しいマイナー バージョンで削除される非推奨の Kubernetes 機能がクラスタで使用されているため、自動アップグレードが一時的に停止している。
- 24 時間以内にクラスタがパッチ バージョンに自動的にアップグレードされた。
- 30 日以内にクラスタがマイナー バージョンに自動的にアップグレードされ、新しいデフォルト バージョンが新しいマイナー バージョンになった。
- 技術的またはビジネス上の理由で、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 がスキップするためです。ノードは、コントロール プレーン バージョンに合わせて、脆弱性やサポートされていないバージョン スキューから保護するために、選択したチャンネルの推奨バージョンに自動的にアップグレードされます。
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 クラスタを登録しないように選択することもできます(「チャンネルなし」、「静的」クラスタともいいます)。リリース チャンネルに登録されていないクラスタには制限があります。一部のノードプールを自動的にアップグレードできず、代わりに手動でアップグレードする必要がある場合にのみ、このオプションを使用してください。クラスタがリリース チャンネルに登録されていない場合は、選択したノードプールでノードの自動アップグレードを無効にできます。
クラスタ全体またはそのすべてのノードの自動アップグレードを一時的に無効にするには、リリース チャンネルに登録されたクラスタでメンテナンスの除外を使用します。メンテナンスの除外を使用すると、すべてのノードプールのノードの自動アップグレードを一時的に無効にできます。一方、クラスタがリリース チャンネルに登録されていない場合は、ノードプール レベルでノードの自動アップグレードを無効にできます。
次の表で、リリース チャンネルにクラスタを登録する場合と登録しない場合の類似点と違いを確認してください。
機能 | リリース チャンネルに登録されているクラスタ | リリース チャンネルに登録されていないクラスタ |
---|---|---|
共有アップグレードの動作 |
|
|
アップグレードのタイミング | それぞれのリリース チャンネルに合わせる |
|
ノードプールの中断の制御 |
|
|
メンテナンスの時間枠 | 利用可能 | 利用可能 |
メンテナンスの除外 |
使用可能なメンテナンスの除外スコープ:
|
「アップグレードなし」スコープ(30 日間)に制限付き |
ロールアウト シーケンス | フリートベースおよびスコープベースのシーケンスで利用可能 | 利用不可 |
長期サポート | Extended リリース チャンネルでのみ可能 | 利用不可 |
Autopilot | 利用可能 | 利用不可 |
Rapid チャンネル クラスタとアルファ クラスタの違い
Rapid リリース チャンネルを使用して作成されたクラスタは、アルファ クラスタではありません。以下の点が異なります。
- リリース チャンネルを使用するクラスタはアップグレード可能です。自動アップグレードが有効であり、無効にはできません。アルファ クラスタはアップグレードできません。
- リリース チャンネルを使用するクラスタに有効期限はありません。アルファ クラスタは 30 日後に期限が切れます。
- アルファ版 Kubernetes API は、リリース チャンネルを使用するクラスタでは有効化できません。
次のステップ
- リリース チャンネルを使用する
- クラスタのアップグレードについて理解する。
- クラスタのアップグレード通知を受け取る方法を確認する。
- ロールアウト シーケンスを使用して、環境全体でクラスタの自動アップグレードを管理する方法を確認する。