Acceso a los recursos de Kubernetes mediante Azure Portal
En este artículo, aprenderá a acceder y administrar los recursos de Azure Kubernetes Service (AKS) mediante Azure Portal.
Antes de empezar
Para visualizar los recursos de Kubernetes en Azure Portal, necesita un clúster de AKS. Se admite cualquier clúster, pero si se utiliza la integración de Microsoft Entra, el clúster tiene que utilizar la integración de Microsoft Entra administrado por AKS. Si su clúster utiliza la integración de Microsoft Entra ID heredada, puede actualizarlo en el portal o mediante la CLI de Azure. También puede usar Azure Portal para crear un nuevo clúster de AKS.
Visualización de recursos de Kubernetes
En el Azure Portal, vaya al recurso de clúster de AKS.
En el menú de servicio, seleccione Recursos de Kubernetes. La lista de recursos de Kubernetes muestra las siguientes categorías:
- Espacios de nombres muestra información sobre los espacios de nombres del clúster.
- Cargas de trabajo muestra información sobre implementaciones, pods, conjuntos de réplicas, objetos StatefulSet, conjuntos de demonios, trabajos y trabajos cron que se han implementado en el clúster.
- Servicios y entradas muestra todos los recursos de entrada y servicio del clúster.
- Almacenamiento muestra las clases de almacenamiento de Azure y la información del volumen persistente.
- Configuración muestra los secretos y objetos ConfigMap del clúster.
- Recursos personalizados muestra los recursos personalizados implementados en el clúster.
- Eventos muestra todos los eventos relacionados con el clúster.
- Ejecutar comando permite invocar comandos de forma remota, como
kubectl
yhelm
, en el clúster a través de la API de Azure sin conectarse directamente al clúster.
Implementar una aplicación de ejemplo
En esta sección, implementamos la aplicación de Azure Store desde el inicio rápido de AKS.
Conexión al clúster
Para implementar la aplicación de Azure Store, debe conectarse al clúster de AKS. Siga estos pasos para conectarse al clúster mediante Azure Portal:
- En la página Información general del clúster de AKS, seleccione Conectar.
- Siga las instrucciones para conectarse al clúster mediante Cloud Shell, CLI de Azure, o comando Ejecutar.
Implementación de la aplicación de Azure Store
En la lista recursos de Kubernetes, seleccione Servicios y entradas.
Seleccione Crear>Aplicar un YAML.
Copie y pegue el código YAML siguiente en el editor:
apiVersion: apps/v1 kind: Deployment metadata: name: rabbitmq spec: replicas: 1 selector: matchLabels: app: rabbitmq template: metadata: labels: app: rabbitmq spec: nodeSelector: "kubernetes.io/os": linux containers: - name: rabbitmq image: mcr.microsoft.com/mirror/docker/library/rabbitmq:3.10-management-alpine ports: - containerPort: 5672 name: rabbitmq-amqp - containerPort: 15672 name: rabbitmq-http env: - name: RABBITMQ_DEFAULT_USER value: "username" - name: RABBITMQ_DEFAULT_PASS value: "password" resources: requests: cpu: 10m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - name: rabbitmq-enabled-plugins mountPath: /etc/rabbitmq/enabled_plugins subPath: enabled_plugins volumes: - name: rabbitmq-enabled-plugins configMap: name: rabbitmq-enabled-plugins items: - key: rabbitmq_enabled_plugins path: enabled_plugins --- apiVersion: v1 data: rabbitmq_enabled_plugins: | [rabbitmq_management,rabbitmq_prometheus,rabbitmq_amqp1_0]. kind: ConfigMap metadata: name: rabbitmq-enabled-plugins --- apiVersion: v1 kind: Service metadata: name: rabbitmq spec: selector: app: rabbitmq ports: - name: rabbitmq-amqp port: 5672 targetPort: 5672 - name: rabbitmq-http port: 15672 targetPort: 15672 type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: replicas: 1 selector: matchLabels: app: order-service template: metadata: labels: app: order-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: order-service image: ghcr.io/azure-samples/aks-store-demo/order-service:latest ports: - containerPort: 3000 env: - name: ORDER_QUEUE_HOSTNAME value: "rabbitmq" - name: ORDER_QUEUE_PORT value: "5672" - name: ORDER_QUEUE_USERNAME value: "username" - name: ORDER_QUEUE_PASSWORD value: "password" - name: ORDER_QUEUE_NAME value: "orders" - name: FASTIFY_ADDRESS value: "0.0.0.0" resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi initContainers: - name: wait-for-rabbitmq image: busybox command: ['sh', '-c', 'until nc -zv rabbitmq 5672; do echo waiting for rabbitmq; sleep 2; done;'] resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi --- apiVersion: v1 kind: Service metadata: name: order-service spec: type: ClusterIP ports: - name: http port: 3000 targetPort: 3000 selector: app: order-service --- apiVersion: apps/v1 kind: Deployment metadata: name: product-service spec: replicas: 1 selector: matchLabels: app: product-service template: metadata: labels: app: product-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: product-service image: ghcr.io/azure-samples/aks-store-demo/product-service:latest ports: - containerPort: 3002 resources: requests: cpu: 1m memory: 1Mi limits: cpu: 1m memory: 7Mi --- apiVersion: v1 kind: Service metadata: name: product-service spec: type: ClusterIP ports: - name: http port: 3002 targetPort: 3002 selector: app: product-service --- apiVersion: apps/v1 kind: Deployment metadata: name: store-front spec: replicas: 1 selector: matchLabels: app: store-front template: metadata: labels: app: store-front spec: nodeSelector: "kubernetes.io/os": linux containers: - name: store-front image: ghcr.io/azure-samples/aks-store-demo/store-front:latest ports: - containerPort: 8080 name: store-front env: - name: VUE_APP_ORDER_SERVICE_URL value: "http://order-service:3000/" - name: VUE_APP_PRODUCT_SERVICE_URL value: "http://product-service:3002/" resources: requests: cpu: 1m memory: 200Mi limits: cpu: 1000m memory: 512Mi --- apiVersion: v1 kind: Service metadata: name: store-front spec: ports: - port: 80 targetPort: 8080 selector: app: store-front type: LoadBalancer
Seleccione Agregar.
Una vez finalizada la implementación de la aplicación, verá los siguientes servicios en la lista de Servicios:
- order-service
- product-service
- rabbitmq
- store-front
Supervisión de la información de implementación
Habilitación del complemento de supervisión en el clúster de AKS
Los clústeres de AKS con Container Insights habilitado pueden acceder a varias conclusiones de implementación en Azure Portal. Si no tiene habilitada la supervisión en el clúster, puede habilitarla mediante los pasos siguientes:
En el menú de servicio del recurso de clúster de AKS, seleccione Supervisión>Insights>Configurar supervisión.
En la página Configurar Container Insights, seleccione Configurar.
La solución de supervisión puede tardar unos minutos en implementarse y empezar a recopilar datos.
Visualización de la información de implementación
- En el menú de servicio del recurso de clúster de AKS, seleccione Cargas de trabajo.
- Seleccione una implementación de la lista para ver información de implementación, como el uso de CPU y memoria.
Nota:
También puede seleccionar Monitoring>Insights para ver información más detallada sobre nodos y contenedores específicos.
Limpieza de recursos
Si ya no necesita la aplicación Azure Store, puede eliminar los servicios para evitar incurrir en costos de Azure.
- En la lista recursos de Kubernetes, seleccione Servicios y entradas.
- Seleccione los servicios que desea eliminar y, a continuación, seleccione Eliminar.
Solución de problemas
Acceso no autorizado
Para acceder a los recursos de Kubernetes, necesita acceso al clúster de AKS, a la API de Kubernetes y a los objetos de Kubernetes. Asegúrese de que es un administrador de clústeres o un usuario con los permisos adecuados para acceder al clúster de AKS. Para obtener más información, vea Opciones de acceso e identidad para AKS.
Activación de la vista de recursos
Es posible que tenga que habilitar la vista de recursos de Kubernetes para los clústeres existentes.
Sugerencia
Puede agregar la característica de intervalos IP autorizados del servidor de API de AKS para limitar el acceso del servidor de API solo al punto de conexión público del firewall. Otra opción consiste en actualizar el --api-server-authorized-ip-ranges
/-ApiServerAccessAuthorizedIpRange
para incluir el acceso a un equipo cliente local o al intervalo de direcciones IP desde el que va a examinar Azure Portal. Para permitir este acceso, necesita la dirección IPv4 pública del equipo. Puede encontrar esta dirección mediante los siguientes comandos de la CLI de Azure o Azure PowerShell, o bien puede buscar "qué es mi dirección IP" en el explorador.
Recupere su dirección IP mediante el siguiente comando:
CURRENT_IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
Agregue la dirección IP a la lista aprobada de AKS mediante el comando
az aks update
con el parámetro--api-server-authorized-ip-ranges
.az aks update --resource-group <resource-group-name> --name <aks-cluster-name> --api-server-authorized-ip-ranges $CURRENT_IP/32
Pasos siguientes
En este artículo se muestra cómo acceder a los recursos de Kubernetes desde el Azure Portal. Para más información sobre AKS, conceptos básicos de Azure Kubernetes Service (AKS).
Azure Kubernetes Service