次の方法で共有


ノード OS イメージの自動アップグレード

AKS には、タイムリーなノード レベルの OS セキュリティ更新プログラム専用の複数の自動アップグレード チャネルが用意されています。 このチャネルは、クラスター レベルの Kubernetes バージョンのアップグレードとは異なり、それに代わるものです。

ノード OS の自動アップグレードとクラスターの自動アップグレードの間の相互作用

ノード レベルの OS セキュリティ更新プログラムは、Kubernetes パッチまたはマイナー バージョンの更新プログラムよりも速い頻度で提供されます。 ノード OS の自動アップグレード チャネルを使用すると、柔軟性が得られ、ノード レベルの OS セキュリティ更新プログラムのカスタマイズされた戦略が可能になります。 その後、クラスター レベルの Kubernetes バージョン の自動アップグレード用に別のプランを選択できます。 クラスター レベルの自動アップグレードとノード OS の自動アップグレード チャネルの両方を一緒に使用することをお勧めします。 クラスターの自動アップグレード チャネルとノード OS の自動アップグレード チャネルのaksManagedNodeOSUpgradeScheduleに - aksManagedAutoUpgradeSchedule 2 つの個別のメンテナンス期間を適用することで、スケジュールを微調整できます。

ノード OS イメージのアップグレード用のチャネル

選択したチャネルによって、アップグレードのタイミングが決まります。 ノード OS の自動アップグレード チャネルに変更を加えるときは、変更が反映されるまで最大 24 時間かかります。

  • あるチャネルから別のチャネルに変更すると、再イメージ化がトリガーされ、ノードのローリングが行われます
  • ノード OS イメージ自動アップグレードはクラスターの Kubernetes バージョンには影響しません。 API バージョン 2023-06-01 以降では、作成される新しいクラスターの既定値は NodeImage です。

次のアップグレード チャネルを使用できます。 次のいずれかのオプションを選択できます。

チャネル 説明 OS 固有の動作
None ノードには、セキュリティ更新プログラムが自動的に適用されません。 つまり、セキュリティ更新プログラムについては、お客様に全責任があります。 該当なし
Unmanaged OS 更新プログラムは、OS 組み込みのパッチ適用インフラストラクチャを通じて自動的に適用されます。 新しく割り当てられたマシンには、当初はパッチが適用されていません。 OS のインフラストラクチャによって、ある時点でパッチが適用されます。 Ubuntu と Azure Linux (CPU ノード プール) によって、1 日に約 1 回、06:00 UTC 頃に無人アップグレード/dnf-automatic を通じてセキュリティ パッチが適用されます。 Windows では自動的にセキュリティ パッチが適用されないため、このオプションは None と同じように動作します。 kured などのツールを使って再起動プロセスを管理する必要があります。
SecurityPatch OS セキュリティ パッチ。AKS でテストされ、完全に管理され、安全なデプロイ プラクティスで適用されます。 AKS は、ノードの仮想ハード ディスク (VHD) を、"security only" というラベルの付いたイメージ メンテナンス ツールからのパッチで定期的に更新します。セキュリティ パッチがノードに適用されるときに、中断が発生する可能性があります。 ただし、AKS では、特定のカーネル セキュリティ パッケージなど、必要なときにのみノードを再イメージ化することによって中断を制限しています。 パッチが適用されると、メンテナンス期間とサージ設定を考慮して VHD が更新され、既存のマシンがその VHD にアップグレードされます。 AKS では、ノードの再イメージ化が不要と判断された場合、ポッドをドレインすることなくライブ ノードにパッチが適用され、VHD の更新は行われません。 このオプションでは、ノード リソース グループで VHD をホストするための追加コストが発生します。 このチャネルを使用する場合、Linux の無人アップグレードは既定で無効になります。 Azure Linux では、GPU 対応 VM でこのチャネルはサポートされていません。 SecurityPatch は、マイナー Kubernetes バージョンが引き続きサポートされている限り、非推奨の Kubernetes パッチ バージョンで機能します。
NodeImage AKS では、週 1 回の頻度で、セキュリティ修正とバグ修正を含む新しくパッチが適用された VHD でノードを更新します。 新しい VHD の更新は、メンテナンス期間とサージ設定に従って中断されます。 このオプションを選んだ場合、追加の VHD コストは発生しません。 このチャネルを使用する場合、Linux の無人アップグレードは既定で無効になります。 クラスター k8s マイナー バージョンが引き続きサポートされている限り、ノード イメージのアップグレードはサポートされます。 ノード イメージは AKS でテストされ、完全に管理され、安全なデプロイ プラクティスで適用されます。

どちらを選ぶべきか - SecurityPatch チャネルまたは NodeImage チャネル?

SecurityPatchチャネルとNodeImage チャネルのどちらを選択するかは、2 つの重要な考慮事項があります。

プロパティ NodeImage チャネル セキュリティパッチ チャンネル 推奨チャネル
Speed of shipping 新しい VHD の一般的なビルド、テスト、リリース、ロールアウトのタイムラインは、安全なデプロイプラクティスの後、約 2 週間かかる場合があります。 CVE が発生した場合でも、ケースバイケースで高速ロールアウトが行われる可能性があります。 新しい VHD がリージョンにヒットする正確なタイミングは、 リリース トラッカーを使用して監視できます。 SecurityPatch リリースは、安全なデプロイプラクティスを使用しても、 NodeImageよりも比較的高速です。 SecurityPatch には、Linux 環境では "ライブ パッチ適用" という利点があります。この場合、修正プログラムを適用すると選択的な "再イメージ化" が行われ、パッチが適用されるたびに再イメージ化されることはありません。 再イメージ化が発生した場合、メンテナンスウィンドウによって制御されます。 SecurityPatch
Bugfixes セキュリティ修正に加え、バグ修正も行います。 セキュリティ修正プログラムのみを厳密に適用します。 NodeImage

新しいクラスターでノード OS の自動アップグレード チャネルを設定する

  • az aks create コマンドと --node-os-upgrade-channel パラメーターを使用して、新しいクラスターでノード OS の自動アップグレード チャネルを設定します。 次の例では、ノード OS の自動アップグレード チャネルを SecurityPatchに設定します。
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="myResourceGroup$RANDOM_SUFFIX"
export AKS_CLUSTER="myAKSCluster$RANDOM_SUFFIX"
az aks create \
    --resource-group $RESOURCE_GROUP \
    --name $AKS_CLUSTER \
    --node-os-upgrade-channel SecurityPatch \
    --generate-ssh-keys

既存のクラスターでノード OS の自動アップグレード チャネルを設定する

  • --node-os-upgrade-channel パラメーターを指定して、az aks update コマンドを使用して、既存のクラスターでノード os の自動アップグレード チャネルを設定します。 次の例では、ノード OS の自動アップグレード チャネルを SecurityPatchに設定します。
az aks update --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --node-os-upgrade-channel SecurityPatch

結果:

{
  "autoUpgradeProfile": {
      "nodeOsUpgradeChannel": "SecurityPatch"
  }
}

所有権とスケジュールを更新する

既定の頻度とは、適用されている計画メンテナンス期間がないことを意味します。

チャネル 更新の所有権 既定の頻度
Unmanaged OS 主導のセキュリティ更新プログラム。 AKS では、これらの更新プログラムを制御できません。 Ubuntu と Azure Linux の場合は、毎晩午前 6 時頃 (UTC)。 Windows の場合は毎月。
SecurityPatch AKS でテストされ、完全に管理され、安全なデプロイ プラクティスで適用されます。 詳細については、Azure での Canonical ワークロードのセキュリティと回復性の向上についての記事を参照してください。 通常、AKS が決定する周期である週次よりも高速です。
NodeImage AKS でテストされ、完全に管理され、安全なデプロイ プラクティスで適用されます。 リリースに関するよりリアルタイムな情報については、リリース トラッカーの AKS ノード イメージに関するページを参照してください 毎週。

Windows セキュリティ更新プログラムは毎月リリースされますが、Unmanaged チャネルを使っても、これらの更新プログラムは Windows ノードに自動的に適用されません。 Unmanaged チャネルを選んだ場合は、Windows ノードの再起動プロセスを管理する必要があります。

ノード チャネルの既知の制限事項

  • 現在、 クラスターの自動アップグレード チャネルnode-imageに設定すると、ノード OS の自動アップグレード チャネルも自動的に NodeImageに設定されます。 クラスターの自動アップグレード チャネルが node-imageされている場合、ノード OS の自動アップグレード チャネルの値を変更することはできません。 ノード OS の自動アップグレード チャネル値を設定するには、 クラスターの自動アップグレード チャネル 値が node-imageされていないことを確認します。

  • SecurityPatch チャネルは、Windows OS ノード プールではサポートされていません。

SecurityPatch チャネルには CLI バージョン 2.61.0 以降を使用します。

ノード OS の計画メンテナンス期間

ノード OS の自動アップグレードの計画メンテナンスは、指定したメンテナンス期間から開始されます。

適切な機能を確保するには、"4 時間以上" のメンテナンス期間を費やしてください。

計画メンテナンスについて詳しくは、「計画メンテナンスを使用して Azure Kubernetes Service (AKS) クラスターのメンテナンス期間をスケジュールする」を参照してください。

Node OS の自動アップグレードに関する FAQ

クラスターで現在の nodeOsUpgradeChannel 値を確認するにはどうすればよいですか?

az aks show コマンドを実行し、"autoUpgradeProfile" を調べて、nodeOsUpgradeChannel がどの値に設定されているかを確認します。

az aks show --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --query "autoUpgradeProfile"

結果:

{
  "nodeOsUpgradeChannel": "SecurityPatch"
}

ノード OS の自動アップグレードの状態を監視するにはどうすればよいですか?

ノード OS の自動アップグレードの状態を表示するには、クラスターのアクティビティ ログを検索します。 AKS クラスターのアップグレードに関する記事で説明されているように、特定のアップグレード関連イベントを検索することもできます。 AKS は、アップグレード関連の Event Grid イベントも生成します。 詳細については、「Event Grid ソースとしての AKS」を参照してください。

クラスターの自動アップグレード チャネルが node-image に設定されている場合、ノード OS の自動アップグレード チャネルの値を変更できますか?

不正解です。 現在、 クラスターの自動アップグレード チャネルnode-imageに設定すると、ノード OS の自動アップグレード チャネルも自動的に NodeImageに設定されます。 クラスターの自動アップグレード チャネルが node-imageされている場合、ノード OS の自動アップグレード チャネルの値を変更することはできません。 ノード OS の自動アップグレード チャネル値を変更できるようにするには、 クラスターの自動アップグレード チャネルnode-imageされていないことを確認します。

Unmanaged チャネルでは、AKS はセキュリティ更新プログラムの配信方法とタイミングを制御しません。 SecurityPatch では、セキュリティ更新プログラムは完全にテストされ、安全なデプロイ プラクティスに従います。 SecurityPatch にはメンテナンス期間も適用されます。 詳細については、Azure での Canonical ワークロードのセキュリティと回復性の向上についての記事を参照してください。

SecurityPatch では常にノードの再イメージ化が発生しますか?

AKS では、完全に適用するために再イメージ化が必要になる可能性がある特定のカーネル パッケージなど、どうしても必要な場合のみに再イメージ化が制限されます。 SecurityPatch は、中断を可能な限り最小限に抑えるように設計されています。 AKS では、ノードの再イメージ化が必要ないと判断された場合、ポッドをドレインすることなくライブ ノードにパッチが適用されます。そのような場合は VHD の更新が実行されません。

SecurityPatch チャネルが snapshot.ubuntu.com エンドポイントに到達する必要がある理由

SecurityPatch チャネルでは、Linux クラスター ノードは、ubuntu-snapshots-on-azure-ensuring-predictability-and-consistency-in-cloud-deployments で説明されている ubuntu スナップショット サービスから必要なセキュリティ パッチと更新プログラムをダウンロードする必要があります。

ノードに SecurityPatch または NodeImage のアップグレードが適用されているかどうかを確認するにはどうすればよいですか?

kubectl get nodes --show-labels コマンドを実行して、クラスター内のノードとそのラベルを一覧表示します。

返されるラベルの中に、次の出力のような行があります。

kubernetes.azure.com/node-image-version=AKSUbuntu-2204gen2containerd-202410.27.0-2024.12.01

ここでは、基本ノード イメージのバージョンは AKSUbuntu-2204gen2containerd-202410.27.0 です。 該当する場合は、通常、セキュリティ更新プログラムのバージョンに従います。 上記の例では、2024.12.01 です。

同じ詳細は、Azure portal のノード ラベル ビューでも参照できます。

Azure portal の AKS クラスターに対するノード ページのスクリーンショット。ノード イメージ バージョンのラベルには、ベース ノード イメージと、適用された最新のセキュリティ パッチの日付が明確に表示されます。

次のステップ

アップグレードのベスト プラクティスとその他の考慮事項の詳細については、AKS のパッチとアップグレード ガイダンスのページを参照してください。