Entrada NGINX administrada con el complemento de enrutamiento de aplicaciones
Una manera de enrutar el tráfico de Protocolo de transferencia de hipertexto (HTTP) y seguro (HTTPS) a las aplicaciones que se ejecutan en un clúster de Azure Kubernetes Service (AKS) es usar el objeto de entrada de Kubernetes. Cuando se crea un objeto de entrada que usa las clases de entrada NGINX de enrutamiento de aplicaciones, el complemento crea, configura y administra uno o varios controladores de entrada en el clúster de AKS.
En este artículo se muestra cómo implementar y configurar un controlador de entrada básico en el clúster de AKS.
Complemento de enrutamiento de aplicaciones con características de NGINX
El complemento de enrutamiento de aplicaciones con NGINX ofrece lo siguiente:
- Configuración sencilla de controladores de entrada NGINX administrados basados en controlador de entrada NGINX de Kubernetes.
- Integración con Azure DNS para la administración de zonas públicas y privadas
- Terminación SSL con certificados almacenados en Azure Key Vault.
Para ver otras configuraciones, consulta:
- Configuración de DNS y SSL
- Configuración del complemento de enrutamiento de aplicaciones
- Configura el controlador de entrada NGIX interno para la zona DNS privada de Azure.
Con la retirada de Open Service Mesh (OSM) de Cloud Native Computing Foundation (CNCF), no se recomienda el uso del complemento de enrutamiento de aplicaciones con OSM.
Requisitos previos
- Suscripción a Azure. Si no tiene una suscripción a Azure, puede crear una cuenta gratuita.
- CLI de Azure versión 2.54.0 o posterior instalada y configurada. Ejecute
az --version
para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.
Limitaciones
- El complemento de enrutamiento de aplicaciones admite hasta cinco zonas DNS de Azure.
- Todas las zonas globales de Azure DNS integradas con el complemento deben estar en el mismo grupo de recursos.
- Todas las zonas DNS privadas de Azure integradas con el complemento deben estar en el mismo grupo de recursos.
- No se permite editar ingress-nginx
ConfigMap
en el espacio de nombresapp-routing-system
. - Las siguientes anotaciones de fragmento de código están bloqueadas e impedirán que se configure una entrada:
load_module
,lua_package
,_by_lua
,location
,root
,proxy_pass
,serviceaccount
,{
,}
,'
.
Habilitación del enrutamiento de aplicaciones mediante la CLI de Azure
Habilitación en un nuevo clúster
Para habilitar el enrutamiento de aplicaciones en un nuevo clúster, use el comando az aks create
y especifique la marca --enable-app-routing
.
az aks create \
--resource-group <ResourceGroupName> \
--name <ClusterName> \
--location <Location> \
--enable-app-routing \
--generate-ssh-keys
Habilitación en un clúster ya existente
Para habilitar el enrutamiento de aplicaciones en un clúster existente, use el comando az aks approuting enable
o el az aks enable-addons
con el parámetro --addons
establecido en http_application_routing
.
# az aks approuting enable
az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
# az aks enable-addons
az aks enable-addons --resource-group <ResourceGroupName> --name <ClusterName> --addons http_application_routing
Conectarse al clúster AKS
Para conectarse al clúster de Kubernetes desde su equipo local, use kubectl, el cliente de la línea de comandos de Kubernetes. Puede realizar la instalación localmente mediante el comando az aks install-cli
. Si usa Azure Cloud Shell, kubectl
ya está instalado.
Para configurar kubectl
para conectarse a su clúster de Kubernetes, use el comando az aks get-credentials.
az aks get-credentials --resource-group <ResourceGroupName> --name <ClusterName>
Implementar una aplicación
El complemento de enrutamiento de aplicaciones usa anotaciones en objetos de entrada de Kubernetes para crear los recursos adecuados.
- Complemento de enrutamiento de aplicaciones
- Open Service Mesh (retirado)
- Anotaciones de servicio (retirado)
Cree el espacio de nombres de la aplicación llamado
hello-web-app-routing
para ejecutar los pods de ejemplo mediante el comandokubectl create namespace
.kubectl create namespace hello-web-app-routing
Cree la implementación copiando el siguiente manifiesto YAML en un nuevo archivo denominado deployment.yaml y guarde el archivo en el equipo local.
apiVersion: apps/v1 kind: Deployment metadata: name: aks-helloworld namespace: hello-web-app-routing spec: replicas: 1 selector: matchLabels: app: aks-helloworld template: metadata: labels: app: aks-helloworld spec: containers: - name: aks-helloworld image: mcr.microsoft.com/azuredocs/aks-helloworld:v1 ports: - containerPort: 80 env: - name: TITLE value: "Welcome to Azure Kubernetes Service (AKS)"
Cree el servicio copiando el siguiente manifiesto YAML en un nuevo archivo denominado service.yaml y guarde el archivo en el equipo local.
apiVersion: v1 kind: Service metadata: name: aks-helloworld namespace: hello-web-app-routing spec: type: ClusterIP ports: - port: 80 selector: app: aks-helloworld
Crear el objeto Ingress
El complemento de enrutamiento de aplicaciones web crea una clase de entrada en el clúster denominada webapprouting.kubernetes.azure.com. Al crear un objeto de entrada de esta clase, se activa el complemento.
Copie el siguiente manifiesto YAML en un nuevo archivo denominado ingress.yaml y guarde el archivo en el equipo local.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: aks-helloworld namespace: hello-web-app-routing spec: ingressClassName: webapprouting.kubernetes.azure.com rules: - host: <Hostname> http: paths: - backend: service: name: aks-helloworld port: number: 80 path: / pathType: Prefix
Cree los recursos del clúster mediante el comando
kubectl apply
.kubectl apply -f deployment.yaml -n hello-web-app-routing
En la siguiente salida de ejemplo se muestran los recursos creados:
deployment.apps/aks-helloworld created
kubectl apply -f service.yaml -n hello-web-app-routing
En la siguiente salida de ejemplo se muestran los recursos creados:
service/aks-helloworld created
kubectl apply -f ingress.yaml -n hello-web-app-routing
En la siguiente salida de ejemplo se muestran los recursos creados:
ingress.networking.k8s.io/aks-helloworld created
Comprobación de que se creó la entrada administrada
Compruebe que la entrada administrada se ha creado con el comando kubectl get ingress
.
kubectl get ingress -n hello-web-app-routing
En la siguiente salida de ejemplo se muestra la entrada administrada creada:
NAME CLASS HOSTS ADDRESS PORTS AGE
aks-helloworld webapprouting.kubernetes.azure.com myapp.contoso.com 20.51.92.19 80, 443 4m
Quitar el complemento de enrutamiento de aplicaciones
Para eliminar el espacio de nombres asociado, use el comando kubectl delete namespace
.
kubectl delete namespace hello-web-app-routing
Para eliminar el complemento enrutamiento de aplicaciones del clúster, use el comando az aks approuting disable
.
az aks approuting disable --name myAKSCluster --resource-group myResourceGroup
Cuando se deshabilita el complemento de enrutamiento de aplicaciones, algunos recursos de Kubernetes podrían permanecer en el clúster. Estos recursos incluyen configMaps y los secretos, y se crean en el espacio de nombres app-routing-system. Puede quitar estos recursos si lo desea.
Pasos siguientes
En Configuraciones de entrada personalizadas se muestra cómo crear una configuración avanzada de entrada y cómo configurar un dominio personalizado mediante Azure DNS para administrar zonas DNS y configurar una entrada segura.
Para realizar la integración con un equilibrador de carga interno de Azure y configurar una zona DNS privada de Azure para habilitar la resolución DNS de los puntos de conexión privados para resolver dominios específicos, consulte Configuración del controlador de entrada NGINX interno para la zona DNS privada de Azure.
Obtenga información sobre la supervisión de las métricas del controlador de ingress-nginx incluidas con el complemento de enrutamiento de aplicaciones con Prometheus en Grafana (versión preliminar) como parte del análisis del rendimiento y el uso de la aplicación.
Azure Kubernetes Service
Comentaris
https://aka.ms/ContentUserFeedback.
Properament: al llarg del 2024 eliminarem gradualment GitHub Issues com a mecanisme de retroalimentació del contingut i el substituirem per un nou sistema de retroalimentació. Per obtenir més informació, consulteu:Envieu i consulteu els comentaris de