Migrowanie z routingu aplikacji HTTP do dodatku routingu aplikacji
Z tego artykułu dowiesz się, jak przeprowadzić migrację klastra usługi Azure Kubernetes Service (AKS) z funkcji routingu aplikacji HTTP do dodatku routingu aplikacji. Dodatek routingu aplikacji HTTP został wycofany i nie działa w żadnej wersji klastra Kubernetes obecnie obsługiwanej. Zalecamy jak najszybsze przeprowadzenie migracji w celu zachowania obsługiwanej konfiguracji.
Wymagania wstępne
- Interfejs wiersza polecenia platformy Azure w wersji 2.54.0 lub nowszej został zainstalowany i skonfigurowany. Uruchom polecenie
az --version
, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure. aks-preview
Zainstalowane rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 0.5.171 lub nowszej
Uwaga
Te kroki szczegółowo opisują migrację z nieobsługiwanej konfiguracji. W związku z tym usługa AKS nie może oferować obsługi problemów występujących podczas procesu migracji.
Aktualizowanie dodatków, ruchu przychodzącego i użycia adresów IP klastra
Włącz dodatek routingu aplikacji.
az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
Zaktualizuj ruch przychodzący, ustawiając wartość
ingressClassName
webapprouting.kubernetes.azure.com
. Usuń adnotacjękubernetes.io/ingress.class
. Należy również zaktualizować hosta do własnego, ponieważ dodatek routingu aplikacji nie ma strefy DNS klastra zarządzanego. Jeśli nie masz strefy DNS, postępuj zgodnie z instrukcjami, aby je utworzyć i skonfigurować .Początkowo konfiguracja ruchu przychodzącego będzie wyglądać mniej więcej tak:
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
Po poprawnej aktualizacji ta sama konfiguracja wygląda następująco:
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
Zaktualizuj adres IP kontrolera ruchu przychodzącego (na przykład w rekordach DNS) przy użyciu nowego adresu IP. Nowy adres IP można znaleźć przy użyciu polecenia
kubectl get
. Na przykład:kubectl get svc nginx --namespace app-routing-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
Wyłącz dodatek routingu aplikacji HTTP.
az aks disable-addons --resource-group <ResourceGroupName> --name <ClusterName> --addons http_application_routing
Usuwanie i usuwanie wszystkich zasobów routingu aplikacji HTTP
Po wyłączeniu dodatku routingu aplikacji HTTP niektóre powiązane zasoby Kubernetes mogą pozostać w klastrze. Te zasoby obejmują configmaps i wpisy tajne utworzone w przestrzeni nazw kube-system . Aby zachować czysty klaster, możesz usunąć te zasoby. Wyszukaj zasoby addon-http-application-routing przy użyciu następujących
kubectl get
poleceń:kubectl get deployments --namespace kube-system kubectl get services --namespace kube-system kubectl get configmaps --namespace kube-system kubectl get secrets --namespace kube-system
W poniższych przykładowych danych wyjściowych przedstawiono mapy konfiguracji, które powinny zostać usunięte:
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
Usuń pozostałe zasoby przy użyciu
kubectl delete
polecenia . Upewnij się, że określono typ zasobu, nazwę zasobu i przestrzeń nazw. Poniższy przykład usuwa jedną z poprzednich map konfiguracji:kubectl delete configmaps addon-http-application-routing-nginx-configuration --namespace kube-system
Powtórz poprzedni
kubectl delete
krok dla wszystkich zasobów routingu addon-http-application-routingu pozostałych w klastrze.
Następne kroki
Po przeprowadzeniu migracji do dodatku routingu aplikacji dowiedz się, jak monitorować metryki kontrolera ruchu przychodzącego za pomocą rozwiązania Prometheus i narzędzia Grafana.
Azure Kubernetes Service