メンテナンスの時間枠と除外

このページでは、メンテナンスの時間枠メンテナンスの除外について説明します。これにより、自動アップグレードなどのクラスタ メンテナンスを Google Kubernetes Engine(GKE)クラスタで実行するタイミングを指定できるようになります。たとえば、小売業ではメンテナンスの時間枠を平日の夜のみに限定し、主要な営業時間に自動メンテナンスが実行されないようにできます。

概要

メンテナンスの時間枠と除外を使用すると、クラスタで自動メンテナンスをいつ実行できるかをきめ細かく管理できます。

メンテナンスの時間枠は、自動メンテナンスが許容される任意の定期的な時間枠です。

メンテナンスの除外は、自動メンテナンスが禁止される任意の定期的な時間枠です。クラスタには、一度に 3 つまでのメンテナンスの除外を構成できます。

メンテナンスの時間枠とメンテナンスの除外は個別に構成できます。メンテナンスの除外は複数の構成が可能です。

自動メンテナンスの例

Google は、必要な場合に、またはクラスタ内でノードやネットワークを再作成する次のような構成変更を行った場合に、メンテナンス タスクを実施します。

ゾーンクラスタは、コントロール プレーンの構成変更とクラスタの自動アップグレード中に変更できません。これには、ワークロードのデプロイも含まれます。

上記以外の他の種類の変更では、ノードを再作成する際に各ノードからワークロードを移動させるときに、一時的に障害が発生する可能性があります。

メンテナンスの時間枠

メンテナンスの時間枠を使用すると、コントロール プレーンとノードの自動アップグレード実行のタイミングの管理が可能になり、ワークロードの一時的な中断を軽減できます。メンテナンスの時間枠は、次のような場合に役立ちます。

  • オフピーク時: 自動アップグレードをトラフィックが減少するオフピーク時にスケジュールすることにより、ダウンタイムの可能性を最小限に抑えたい。
  • オンコール: アップグレードをモニタリングして予期せぬ問題を管理できるように、アップグレードを勤務時間中に実行したい。
  • 複数クラスタのアップグレード: 異なるリージョンの複数のクラスタに、指定した間隔で一度に 1 つずつアップグレードをロールアウトしたい。

自動アップグレードに加えて、Google は他のメンテナンス タスクを行うこともあります。その場合は、可能な限りクラスタのメンテナンスの時間枠を尊重します。

タスクがメンテナンスの時間枠を超えて実施されると、GKE はタスクを一時停止し、次のメンテナンスの時間枠で再開しようとします。

GKE は、メンテナンスの時間枠の外で、予定外の緊急アップグレードをロールアウトする権限を有します。また、メンテナンスの時間枠の外で、非推奨のソフトウェアや古いソフトウェアからの必須のアップグレードが自動的に行われることがあります。

新規または既存のクラスタに対してメンテナンスの時間枠を設定する方法については、メンテナンスの時間枠の構成をご覧ください。

メンテナンス時間枠の注意点

メンテナンスの時間枠と除外を使用すると、セキュリティ パッチが遅延する可能性があります。GKE は、重大なセキュリティ脆弱性にパッチを適用するためにメンテナンス ポリシーをオーバーライドする権利を有します。メンテナンスの時間枠を有効にする前に、次の注意点を確認してください。

Google Cloud のその他のメンテナンス

GKE クラスタとワークロードは、Compute Engine などの依存サービスの自動メンテナンスによっても影響を受ける可能性があります。GKE のメンテナンスの時間枠と除外は、他のサービスの自動メンテナンスには影響しません。

自動修復とサイズ変更

GKE は、コントロール プレーンの自動修復を行います。自動修復では、コントロール プレーンを適切なサイズにアップスケーリングします。また、コントロール プレーンを再起動して問題を解決します。ほとんどの修復作業ではメンテナンスの時間枠と除外が無視されるため、修復に失敗するとクラスタが機能しなくなります。コントロール プレーンの修復は無効にできません。

ノードにも自動修復機能がありますが、これは無効にできます。

ノードの再作成とメンテナンスの時間枠

コントロール プレーンとノード間のネットワークに影響するような機能やオプションを有効化または変更すると、ノードが再作成されて新しい構成が適用されます。ノードの再作成を行う機能の例は次のとおりです。

メンテナンスの時間枠を使用して、ノードの再作成が必要な機能やオプションを有効化または変更すると、新しい構成はメンテナンスの時間枠内にのみノードに適用されます。待機しないようにするには、gcloud container clusters upgrade コマンドを呼び出し、すでにノードプールが動作している GKE バージョンを指定した --cluster-version フラグを渡すことで、ノードに変更を手動で適用できます。この回避策では gcloud コマンドライン ツールを使用する必要があります。

クラスタごとに 1 つのメンテナンスの時間枠

メンテナンスの時間枠は、クラスタごとに 1 つだけ構成できます。新しいメンテナンスの時間枠を構成すると、以前のメンテナンスの時間枠が上書きされます。

メンテナンスの時間枠のタイムゾーン

メンテナンスの時間枠を構成および表示する場合、使用しているツールによって表示される時間が異なります。

メンテナンスの時間枠を構成する場合

より一般的な --maintenance- window フラグを使用してメンテナンスの時間枠を構成する場合、タイムゾーンを指定できません。gcloud ツールまたは API を使用する場合は UTC が使用され、Google Cloud Console ではローカル タイムゾーンを使用して時間が表示されます。

--maintenance-window-start など、より詳細なフラグを使用する場合は、値の一部としてタイムゾーンを指定できます。タイムゾーンを省略すると、ローカル タイムゾーンが使用されます。時間は常に UTC で保存されます。

メンテナンスの時間枠を表示する場合

クラスタの情報を表示するとき、情報の表示方法に応じて、メンテナンスの時間枠のタイムスタンプは UTC またはローカル タイムゾーンで表示されます。

  • Google Cloud Console を使用してクラスタの情報を表示する場合、時間は常にローカル タイムゾーンで表示されます。
  • gcloud ツールを使用してクラスタの情報を表示する場合、時間は常に UTC で表示されます。

どちらの場合も、RRULE は常に UTC です。たとえば、曜日を指定すると、日付は UTC で表示されます。

メンテナンスの除外

メンテナンスの除外を指定すると、特定の期間の自動メンテナンスを回避できます。たとえば、多くの小売業には、年末年始のインフラストラクチャの変更を禁止するビジネス ガイドラインがあります。影響の大きい既知のイベントについては、内部変更の制限をイベントの 1 週間前に開始しイベント期間中継続したメンテナンスの除外と照合することをおすすめします。

最大 3 つの除外設定を追加できます。サポートされる構成を維持するには、Google はクラスタを維持するための十分な時間を確保する必要があります。

除外構成に繰り返しはありません。代わりに、定期的な除外の各インスタンスを個別に作成します。

新規または既存のクラスタにメンテナンスの除外を設定する方法については、メンテナンスの除外の構成をご覧ください。

次のステップ