Миграция из маршрутизации приложений HTTP в надстройку маршрутизации приложений
Из этой статьи вы узнаете, как перенести кластер Служба Azure Kubernetes (AKS) из функции маршрутизации приложений HTTP в надстройку маршрутизации приложений. Надстройка маршрутизации http-приложений была прекращена и не работает в любой версии Kubernetes кластера в настоящее время в поддержке. Рекомендуется как можно скорее перенести поддерживаемую конфигурацию.
Необходимые компоненты
- Azure CLI версии 2.54.0 или более поздней версии, установленной и настроенной. Чтобы узнать версию, выполните команду
az --version
. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0. aks-preview
Расширение Azure CLI версии 0.5.171 или более поздней версии
Примечание.
Эти шаги подробно переносятся из неподдерживаемой конфигурации. Таким образом, AKS не может предложить поддержку проблем, возникающих во время процесса миграции.
Обновление надстроек кластера, входящего трафика и использования IP-адресов
Включите надстройку маршрутизации приложений.
az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
Обновите входящий трафик, установив значение
ingressClassName
webapprouting.kubernetes.azure.com
. Удалите заметкуkubernetes.io/ingress.class
. Кроме того, необходимо обновить узел до того, который вы владеете, так как надстройка маршрутизации приложений не имеет зоны 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-адресом. Новый IP-адрес можно найти с помощью
kubectl get
. Например: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 могут оставаться в кластере. К этим ресурсам относятся конфигурации и секреты, созданные в пространстве имен kube-system. Чтобы сохранить чистый кластер, можно удалить эти ресурсы. Найдите ресурсы addon-http-application-routing с помощью следующих
kubectl get
команд:kubectl get deployments --namespace kube-system kubectl get services --namespace kube-system kubectl get configmaps --namespace kube-system kubectl get secrets --namespace kube-system
В следующем примере выходных данных показаны карты конфигурации, которые должны быть удалены :
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
команды. Обязательно укажите тип ресурса, имя ресурса и пространство имен. В следующем примере удаляется один из предыдущих объектов configmap.kubectl delete configmaps addon-http-application-routing-nginx-configuration --namespace kube-system
Повторите предыдущий
kubectl delete
шаг для всех ресурсов маршрутизации addon-http-application-маршрутизации , оставшихся в кластере.
Следующие шаги
После миграции в надстройку маршрутизации приложений узнайте, как отслеживать метрики контроллера входящего трафика с помощью Prometheus и Grafana.
Azure Kubernetes Service