Inicio rápido: Implementación de un clúster de Azure Kubernetes Service mediante PowerShell
Azure Kubernetes Service (AKS) es un servicio de Kubernetes administrado que le permite implementar y administrar clústeres rápidamente. En este inicio rápido realizará lo siguiente:
- Implementar un clúster de AKS mediante PowerShell.
- Ejecución de una aplicación de varios contenedores de ejemplo con un servidor front-end web y una instancia de Redis en el clúster.
En esta guía rápida se presupone un conocimiento básico de los conceptos de Kubernetes. Para más información, consulte Conceptos básicos de Kubernetes de Azure Kubernetes Service (AKS).
Prerrequisitos
Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.
Si va a ejecutar PowerShell de forma local, instale el módulo Az PowerShell y conéctese a su cuenta de Azure con el cmdlet Connect-AzAccount. Para más información sobre cómo instalar el módulo Az PowerShell, consulte Instalación de Azure PowerShell.
La identidad que usa para crear el clúster tiene los permisos mínimos adecuados. Para más información sobre el acceso y la identidad en AKS, consulte Opciones de acceso e identidad en Azure Kubernetes Service (AKS).
Si tiene varias suscripciones a Azure, seleccione el identificador de la suscripción adecuada en la que se deben facturar los recursos con el cmdlet Set-AzContext.
Set-AzContext -SubscriptionId 00000000-0000-0000-0000-000000000000
Uso de Azure Cloud Shell
En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.
Para iniciar Azure Cloud Shell:
| Opción | Ejemplo o vínculo |
|---|---|
| Seleccione Pruébelo en la esquina superior derecha de un bloque de código. Solo con seleccionar Pruébelo no se copia automáticamente el código en Cloud Shell. | ![]() |
| Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. | ![]() |
| Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. | ![]() |
Para ejecutar el código de este artículo en Azure Cloud Shell:
Inicie Cloud Shell.
Seleccione el botón Copiar de un bloque de código para copiar el código.
Pegue el código en la sesión de Cloud Shell. Para ello, seleccione CTRL+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.
Seleccione Entrar para ejecutar el código.
Crear un grupo de recursos
Un grupo de recursos de Azure es un grupo lógico en el que se implementan y administran recursos de Azure. Cuando crea un grupo de recursos, se le pide que especifique una ubicación. Esta ubicación es:
- La ubicación de almacenamiento de los metadatos del grupo de recursos.
- El lugar en el que se ejecutan los recursos en Azure si no se especifica otra región al crear los recursos.
En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la región eastus.
Cree un grupo de recursos con el cmdlet New-AzResourceGroup.
New-AzResourceGroup -Name myResourceGroup -Location eastus
El ejemplo de salida siguiente es similar a la creación correcta del grupo de recursos:
ResourceGroupName : myResourceGroup
Location : eastus
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup
Creación de un clúster de AKS
Cree un clúster de AKS con el cmdlet New-AzAksCluster y el parámetro -WorkspaceResourceId para habilitar Container Insights de Azure Monitor.
Cree un clúster de AKS denominado myAKSCluster con un nodo.
New-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -NodeCount 1 -GenerateSshKey -WorkspaceResourceId <WORKSPACE_RESOURCE_ID>
Transcurridos unos minutos, el comando se completa y devuelve información en formato JSON sobre el clúster.
Nota
Al crear un clúster de AKS, se crea automáticamente un segundo grupo de recursos para almacenar los recursos de dicho clúster. Para más información, consulte ¿Por qué se crean dos grupos de recursos con AKS?
Conectarse al clúster
Para administrar un clúster de Kubernetes, use kubectl, el cliente de línea de comandos de Kubernetes. Si usa Azure Cloud Shell, kubectl ya está instalado.
Para instalar
kubectllocalmente, use el cmdletInstall-AzAksKubectl:Install-AzAksKubectlPara configurar
kubectlpara conectarse al clúster de Kubernetes, use el cmdlet Import-AzAksCredential. El siguiente cmdlet permite descargar las credenciales y configurar la CLI de Kubernetes para usarlas.Import-AzAksCredential -ResourceGroupName myResourceGroup -Name myAKSClusterPara comprobar la conexión al clúster, ejecute el comando kubectl get. Este comando devuelve una lista de los nodos del clúster.
kubectl get nodesEn el ejemplo de salida siguiente se muestra el nodo único creado en los pasos anteriores. Asegúrese de que el estado del nodo es Listo:
NAME STATUS ROLES AGE VERSION aks-nodepool1-31718369-0 Ready agent 6m44s v1.15.10
Implementación de la aplicación
Un archivo de manifiesto de Kubernetes define el estado deseado del clúster, por ejemplo, qué imágenes de contenedor se van a ejecutar.
En este inicio rápido se usa un manifiesto para crear todos los objetos necesarios para ejecutar la aplicación Azure Vote. Este manifiesto incluye dos implementaciones de Kubernetes:
- Las aplicaciones de Python de ejemplo de Azure Vote.
- Una instancia de Redis.
También se crean dos servicios de Kubernetes:
- Un servicio interno para la instancia de Redis.
- Un servicio externo para acceder a la aplicación Azure Vote desde Internet.
Cree un archivo llamado
azure-vote.yaml.- Si usa Azure Cloud Shell, este archivo se puede crear mediante
code,vionanocomo si trabajara en un sistema físico o virtual:
- Si usa Azure Cloud Shell, este archivo se puede crear mediante
Copie la siguiente definición de código YAML:
apiVersion: apps/v1 kind: Deployment metadata: name: azure-vote-back spec: replicas: 1 selector: matchLabels: app: azure-vote-back template: metadata: labels: app: azure-vote-back spec: nodeSelector: "kubernetes.io/os": linux containers: - name: azure-vote-back image: mcr.microsoft.com/oss/bitnami/redis:6.0.8 env: - name: ALLOW_EMPTY_PASSWORD value: "yes" resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi ports: - containerPort: 6379 name: redis --- apiVersion: v1 kind: Service metadata: name: azure-vote-back spec: ports: - port: 6379 selector: app: azure-vote-back --- apiVersion: apps/v1 kind: Deployment metadata: name: azure-vote-front spec: replicas: 1 selector: matchLabels: app: azure-vote-front template: metadata: labels: app: azure-vote-front spec: nodeSelector: "kubernetes.io/os": linux containers: - name: azure-vote-front image: mcr.microsoft.com/azuredocs/azure-vote-front:v1 resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi ports: - containerPort: 80 env: - name: REDIS value: "azure-vote-back" --- apiVersion: v1 kind: Service metadata: name: azure-vote-front spec: type: LoadBalancer ports: - port: 80 selector: app: azure-vote-frontImplemente la aplicación mediante el comando kubectl apply y especifique el nombre del manifiesto de YAML:
kubectl apply -f azure-vote.yamlEl ejemplo siguiente se parece a la salida que muestra las implementaciones y servicios creados correctamente:
deployment.apps/azure-vote-back created service/azure-vote-back created deployment.apps/azure-vote-front created service/azure-vote-front created
Prueba de la aplicación
Cuando se ejecuta la aplicación, un servicio de Kubernetes expone el front-end de la aplicación a Internet. Este proceso puede tardar unos minutos en completarse.
Para supervisar el progreso, utilice el comando kubectl get service con el argumento --watch.
kubectl get service azure-vote-front --watch
La salida de EXTERNAL-IP del servicio azure-vote-front aparecerá inicialmente como pendiente.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Una vez que la dirección EXTERNAL-IP cambia de pendiente a una dirección IP pública real, use CTRL-C para detener el kubectl proceso de inspección. En la salida del ejemplo siguiente se muestra una dirección IP pública válida asignada al servicio:
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Para ver la aplicación Azure Vote en acción, abra un explorador web en la dirección IP externa del servicio.
Eliminación del clúster
Para evitar cargos de Azure, si no tiene previsto seguir los tutoriales siguientes, limpie los recursos innecesarios. Use el cmdlet Remove-AzResourceGroup para eliminar el grupo de recursos, el servicio de contenedor y todos los recursos relacionados.
Remove-AzResourceGroup -Name myResourceGroup
Nota
El clúster de AKS se ha creado con una identidad administrada asignada por el sistema (la opción de identidad predeterminada usada en este inicio rápido), la identidad se administra por la plataforma y no es necesaria su eliminación.
Pasos siguientes
En este inicio rápido, ha implementado un clúster de Kubernetes y luego ha implementado en él una aplicación de varios contenedores de ejemplo.
Para obtener más información sobre AKS y un ejemplo completo desde el código hasta la implementación, continúe con el tutorial del clúster de Kubernetes.


