次の方法で共有


Azure Kubernetes Service (AKS) IPAM モードとデータプレーン テクノロジをアップグレードする

Azure Kubernetes Service (AKS) をサポートする新しい IP 割り当て管理 (IPAM) モードとデータプレーン テクノロジが常に存在するため、最新の機能とサポート可能性にアクセスするために、既存の AKS クラスターを新しい IPAM モードとデータプレーン テクノロジにアップグレードする必要がある状況は避けられません。 この記事では、既存の AKS クラスターをアップグレードして、IPAM モードに Azure CNI オーバーレイを使用し、Cilium を搭載した Azure CNI をデータプレーンとして使用する方法について説明します。

既存のクラスターを Azure CNI オーバーレイにアップグレードする

Note

クラスターが次の条件を満たしていれば、既存の Azure CNI クラスターをオーバーレイに更新できます。

  • クラスターが Kubernetes バージョン 1.22 以降にある。
  • 動的ポッド IP 割り当て機能を使用していない。
  • ネットワーク ポリシーが有効になっていない。 ネットワーク ポリシー エンジンは、アップグレード前にアンインストールできます。「Azure Network Policy Manager または Calico をアンインストールする」を参照してください。
  • コンテナー ランタイムとして Docker を利用する Windows ノード プールを使用していない。

Note

既存のクラスターを CNI オーバーレイにアップグレードすることは、元に戻せないプロセスです。

警告

Windows OS ビルド 20348.1668 より前は、Windows オーバーレイ ポッドに関する制限事項 (ホスト ネットワーク ポッドからのパケットが誤って SNAT される) が原因で、オーバーレイにアップグレードするクラスターに追加の悪影響が生じていました。 この問題を回避するには、20348.1668 以上の Windows OS ビルドを使用します

警告

カスタム azure-ip-masq-agent 構成を使用して、ポッドのパケットに SNAT を使用しないようにする追加の IP 範囲を含める場合、Azure CNI オーバーレイにアップグレードすると、これらの範囲への接続が切断される可能性があります。 オーバーレイ空間のポッド IP には、クラスター ノードの外部からは到達できません。 さらに、かなり古いクラスターでは、前のバージョンの azure-ip-masq-agent の ConfigMap が残っている可能性があります。 azure-ip-masq-agent-config という名前のこの ConfigMap が存在し、意図的に配置されているのではない場合は、update コマンドを実行する前に削除する必要があります。 カスタム ip-masq-agent 構成を使用しない場合は、Azure ip-masq-agent ConfigMaps に関して azure-ip-masq-agent-config-reconciled ConfigMap のみが存在する必要があり、これはアップグレード プロセス中に自動的に更新されます。

アップグレード プロセスにより、各ノード プールが同時に再イメージ化されます。 各ノード プールをオーバーレイに個別にアップグレードすることはサポートされていません。 クラスター ネットワークの中断は、ノード プール内の各ノードが再イメージ化される、ノード イメージのアップグレードまたは Kubernetes バージョンのアップグレードと似た形になります。

Azure CNI クラスターのアップグレード

[az aks update][az-aks-update] コマンドを使用して、Overlay を使用するように既存の Azure CNI クラスターを更新します。

clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"

az aks update --name $clusterName \
--resource-group $resourceGroup \
--network-plugin-mode overlay \
--pod-cidr 192.168.0.0/16

ポッドは既存のノード サブネットと重複しない新しいオーバーレイ空間から IP を取得する必要があるため、レガシ CNI からアップグレードする場合は、--pod-cidr パラメーターが必要です。 ポッド CIDR は、ノード プールの VNet アドレスと重複することはできません。 たとえば、VNet アドレスが 10.0.0.0/8 で、ノードがサブネット 10.240.0.0/16 にある場合、--pod-cidr10.0.0.0/8 またはクラスター上の既存のサービス CIDR と重複できません。

Kubenet クラスターのアップグレード

[az aks update][az-aks-update] コマンドを使用して、Azure CNI オーバーレイを使用するように既存の Kubenet クラスターを更新します。

clusterName="myOverlayCluster"
resourceGroup="myResourceGroup"
location="westcentralus"

az aks update --name $clusterName \
--resource-group $resourceGroup \
--network-plugin azure \
--network-plugin-mode overlay 

クラスターではポッドに VNet IP 空間と重複しないプライベート CIDR が既に使用されているため、--pod-cidr パラメーターを指定する必要はありません。パラメーターを使用しない場合、ポッド CIDR は同じままです。

Note

Kubenet から CNI オーバーレイにアップグレードする場合、ポッドのルーティングにルート テーブルは不要になります。 クラスターで顧客が提供したルート テーブルを使用している場合、ポッド トラフィックを適切なノードに誘導するために使用されていたルートは、移行操作中に自動的に削除されます。 クラスターでマネージド ルート テーブル (ルート テーブルが AKS によって作成され、ノード リソース グループに存在する) を使用している場合、そのルート テーブルは移行の一部として削除されます。

既存のクラスターを Cilium を利用した Azure CNI にアップグレードする

Note

クラスターが次の条件を満たしていれば、既存のクラスターを Cilium を利用した Azure CNI に更新できます。

Note

別のネットワーク ポリシー エンジン (Azure NPM または Calico) を備えたクラスターで Cilium を有効にすると、そのネットワーク ポリシー エンジンはアンインストールされ、Cilium に置き換えられます。 詳細については、「Azure Network Policy Manager または Calico をアンインストールする」を参照してください。

警告

アップグレード プロセスにより、各ノード プールが同時に再イメージ化されます。 各ノード プールを個別にアップグレードすることはサポートされていません。 クラスター ネットワークのあらゆる中断は、ノード プール内の各ノードが再イメージ化される、ノード イメージのアップグレードまたは Kubernetes バージョンのアップグレードと似た形になります。 Cilium は、すべてのノードが再イメージ化された後にのみ、ネットワーク ポリシーの適用を開始します。

アップグレードを実行するには、Azure CLI バージョン 2.52.0 以降が必要です。 現在インストールされているバージョンを確認するには、az --version を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。

次のコマンドを使用して、既存のクラスターを Cilium を利用した Azure CNI にアップグレードします。 <clusterName> および <resourceGroupName> の値を置き換えます。

az aks update --name <clusterName> --resource-group <resourceGroupName> \
  --network-dataplane cilium