ノードの OS イメージを自動アップグレードする
AKS には、タイムリーなノード レベルの OS セキュリティ更新プログラムに専用の複数の自動アップグレード チャネルが用意されています。 このチャネルは、クラスター レベルの Kubernetes バージョンのアップグレードとは異なり、それに代わるものです。
ノード OS の自動アップグレードとクラスターの自動アップグレードの間の相互作用
ノード レベルの OS セキュリティ更新プログラムは、Kubernetes パッチまたはマイナー バージョンの更新プログラムよりも速い頻度で提供されます。 ノード OS 自動アップグレード チャネルを使用すると、柔軟性が得られ、ノード レベルの OS セキュリティ更新プログラムに対してカスタマイズされた戦略が可能になります。 その後、クラスター レベルの Kubernetes バージョンの 自動アップグレード用に別のプランを選択できます。
クラスター レベルの自動アップグレードとノード OS の自動アップグレード チャネルの両方を一緒に使うのが最善です。 クラスターの自動アップグレード チャネルには aksManagedAutoUpgradeSchedule
、ノード OS の自動アップグレード チャネルには aksManagedNodeOSUpgradeSchedule
という 2 つの別個のメンテナンス期間を適用することで、スケジュールを微調整できます。
ノード OS イメージのアップグレード用のチャネル
選択したチャネルによって、アップグレードのタイミングが決まります。 ノード OS の自動アップグレード チャネルに変更を加えるときは、変更が反映されるまで最大 24 時間かかります。 あるチャネルから別のチャネルに変更すると、再イメージ化がトリガーされ、ノードのローリングが行われます。
Note
ノード 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 の無人アップグレードは既定で無効になります。 ノード イメージのアップグレードでは、非推奨になったパッチ バージョンであっても、Kubernetes のマイナー バージョンがまだサポートされている限り、サポートされます。 ノード イメージは AKS でテストされ、完全に管理され、安全なデプロイ プラクティスで適用されます |
新しいクラスター上でノード OS 自動アップグレード チャネルを設定する
az aks create
コマンドと--node-os-upgrade-channel
パラメーターを使用して、新しいクラスター上でノード OS 自動アップグレード チャネルを設定します。 次の例では、ノード OS 自動アップグレード チャネルをSecurityPatch
に設定します。az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-os-upgrade-channel SecurityPatch \ --generate-ssh-keys
既存のクラスター上でノード OS 自動アップグレード チャネルを設定する
az aks update
コマンドと--node-os-upgrade-channel
パラメーターを使用して、既存のクラスター上でノード OS 自動アップグレード チャネルを設定します。 次の例では、ノード OS 自動アップグレード チャネルをSecurityPatch
に設定します。az aks update --resource-group myResourceGroup --name myAKSCluster --node-os-upgrade-channel SecurityPatch
所有権とスケジュールを更新する
既定の頻度とは、適用されている計画メンテナンス期間がないことを意味します。
チャネル | 更新の所有権 | 既定の頻度 |
---|---|---|
Unmanaged |
OS 主導のセキュリティ更新プログラム。 AKS では、これらの更新プログラムを制御できません。 | Ubuntu と Azure Linux の場合は、毎晩午前 6 時頃 (UTC)。 Windows の場合は毎月。 |
SecurityPatch |
AKS でテストされ、完全に管理され、安全なデプロイ プラクティスで適用されます。 詳細については、Azure での Canonical ワークロードのセキュリティと回復性の向上についての記事を参照してください。 | 毎週。 |
NodeImage |
AKS でテストされ、完全に管理され、安全なデプロイ プラクティスで適用されます。 リリースに関するよりリアルタイムな情報については、リリース トラッカーの AKS ノード イメージに関するページを参照してください | 毎週。 |
Note
Windows セキュリティ更新プログラムは毎月リリースされますが、Unmanaged
チャネルを使っても、これらの更新プログラムは Windows ノードに自動的に適用されません。 Unmanaged
チャネルを選んだ場合は、Windows ノードの再起動プロセスを管理する必要があります。
ノード チャネルの既知の制限事項
現在、クラスターの自動アップグレード チャネルを
node-image
に設定すると、ノード OS の自動アップグレード チャネルも自動的にNodeImage
に設定されます。 クラスターの自動アップグレード チャネルがnode-image
の場合、ノード OS の自動アップグレード チャネルの値を変更することはできません。 ノード OS の自動アップグレード チャネルの値を設定するには、クラスターの自動アップグレード チャネルの値がnode-image
ではないことを確認します。SecurityPatch
チャネルは、Windows OS ノード プールではサポートされていません。
Note
SecurityPatch
チャネルには CLI バージョン 2.61.0 以降を使用します。
ノード OS の計画メンテナンス期間
ノード OS の自動アップグレードの計画メンテナンスは、ユーザーが指定したメンテナンス期間に開始します。
Note
適切な機能を確保するには、"4 時間以上" のメンテナンス期間を費やしてください。
計画メンテナンスについて詳しくは、「計画メンテナンスを使用して Azure Kubernetes Service (AKS) クラスターのメンテナンス期間をスケジュールする」を参照してください。
ノード OS の自動アップグレードに関する FAQ
クラスターで現在の nodeOsUpgradeChannel 値を確認するにはどうすればよいですか?
az aks show
コマンドを実行し、"autoUpgradeProfile" を調べて、nodeOsUpgradeChannel
がどの値に設定されているかを確認します。
az aks show --resource-group myResourceGroup --name myAKSCluster --query "autoUpgradeProfile"
ノード OS の自動アップグレードの状態を監視するにはどうすればよいですか?
ノード OS の自動アップグレードの状態を表示するには、クラスターのアクティビティ ログを検索します。 AKS クラスターのアップグレードに関する記事で説明されているように、特定のアップグレード関連イベントを検索することもできます。 AKS は、アップグレード関連の Event Grid イベントも生成します。 詳細については、「Event Grid ソースとしての AKS」を参照してください。
クラスターの自動アップグレード チャネルが node-image
に設定されている場合、ノード OS の自動アップグレード チャネルの値を変更することはできますか?
不正解です。 現在、クラスターの自動アップグレード チャネルを node-image
に設定すると、ノード OS の自動アップグレード チャネルも自動的に NodeImage
に設定されます。 クラスターの自動アップグレード チャネルが node-image
の場合、ノード OS の自動アップグレード チャネルの値を変更することはできません。 ノード OS の自動アップグレード チャネルの値を変更できるためには、クラスターの自動アップグレード チャネルが node-image
ではないことを確認してください。
Unmanaged
チャネルよりも SecurityPatch
が推奨される理由
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 のノード ラベル ビューでも参照できます。
次のステップ
アップグレードのベスト プラクティスとその他の考慮事項の詳細については、AKS のパッチとアップグレード ガイダンスのページを参照してください。
Azure Kubernetes Service