HTTP アプリケーション ルーティングからアプリケーション ルーティング アドオンに移行する
この記事では、Azure Kubernetes Service (AKS) クラスターを HTTP アプリケーション ルーティング機能からアプリケーション ルーティング アドオンに移行する方法について学習します。 HTTP アプリケーション ルーティング アドオンは廃止され、現在サポートされているクラスター Kubernetes バージョンでは機能しません。 サポートされている構成を維持するには、できるだけ早く移行することをお勧めします。
前提条件
- Azure CLI バージョン 2.54.0 以降がインストールされ構成されていること。 バージョンを確認するには、
az --version
を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。 aks-preview
Azure CLI 拡張機能のバージョン 0.5.171 以降がインストールされていること
Note
これらの手順では、サポートされていない構成からの移行について詳しく説明しています。 そのため、AKS は移行プロセス中に発生する問題のサポートを提供できません。
クラスターのアドオン、イングレス、IP の使用状況を更新する
アプリケーション ルーティング アドオンを有効にします。
az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
ingressClassName
をwebapprouting.kubernetes.azure.com
に設定して、イングレスを更新します。 注釈のkubernetes.io/ingress.class
を削除します。 また、アプリケーション ルーティング アドオンにはマネージド クラスター DNS ゾーンがないため、ホストを自分が所有するホストに更新する必要もあります。 DNS ゾーンがない場合は、手順に従って DNS ゾーンを作成して構成します。最初は、イングレス構成は次のようになります。
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: aks-helloworld annotations: kubernetes.io/ingress.class: addon-http-application-routing # Remove the ingress class annotation spec: rules: - host: aks-helloworld.<CLUSTER_SPECIFIC_DNS_ZONE> http: paths: - path: / pathType: Prefix backend: service: name: aks-helloworld port: number: 80
適切に更新すると、同じ構成は次のようになります。
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: aks-helloworld spec: ingressClassName: webapprouting.kubernetes.azure.com # Set the ingress class property to refer to the application routing add-on ingress class rules: - http: host: aks-helloworld.<CLUSTER_SPECIFIC_DNS_ZONE> # Replace with your own hostname paths: - path: / pathType: Prefix backend: service: name: aks-helloworld port: number: 80
イングレス コントローラーの IP (DNS レコードなど) を新しい IP アドレスで更新します。
kubectl get
を使用して、新しい IP を見つけることができます。 次に例を示します。kubectl get svc nginx --namespace app-routing-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
HTTP アプリケーションのルーティング アドオンを無効にする
az aks disable-addons --resource-group <ResourceGroupName> --name <ClusterName> --addons http_application_routing
すべての HTTP アプリケーション ルーティング リソースを削除する
HTTP アプリケーションのルーティング アドオンを無効にすると、一部の関連する Kubernetes リソースがクラスターに残ることがあります。 これらのリソースには configmaps と secrets が含まれ、kube-system 名前空間で作成されます。 クリーンなクラスターを維持するために、これらのリソースを削除することができます。 次の
kubectl get
コマンドを使用して、addon-http-application-routing リソースを探します。kubectl get deployments --namespace kube-system kubectl get services --namespace kube-system kubectl get configmaps --namespace kube-system kubectl get secrets --namespace kube-system
次の出力例は、削除する必要がある configmaps を示しています。
NAMESPACE NAME DATA AGE kube-system addon-http-application-routing-nginx-configuration 0 9m7s kube-system addon-http-application-routing-tcp-services 0 9m7s kube-system addon-http-application-routing-udp-services 0 9m7s
kubectl delete
コマンドを使用して残りのリソースを削除します。 リソースの種類、リソース名、および名前空間を必ず指定してください。 次の例では、以前の configmaps の 1 つを削除します。kubectl delete configmaps addon-http-application-routing-nginx-configuration --namespace kube-system
クラスターに残っているすべての addon-http-application-routing リソースに対して、前の
kubectl delete
の手順を繰り返します。
次のステップ
アプリケーション ルーティング アドオンに移行した後、Prometheus と Grafana を使用してイングレス コントローラー メトリックを監視する方法について学習します。
Azure Kubernetes Service