Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Kubernetes Service (AKS) es un servicio de Kubernetes administrado que le permite implementar y administrar clústeres rápidamente. En este artículo, usará Azure PowerShell para implementar un clúster de AKS que ejecute contenedores de Windows Server. También implementará una aplicación de ejemplo de ASP.NET en un contenedor de Windows Server en el clúster.
Nota:
Para empezar a aprovisionar rápidamente un clúster de AKS, en este artículo se incluyen los pasos para implementar un clúster con la configuración predeterminada solo con fines de evaluación. Antes de implementar un clúster listo para producción, se recomienda familiarizarse con nuestra arquitectura de referencia de línea de base para considerar cómo se alinea con sus requisitos empresariales.
Antes de empezar
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).
-
Si no tiene una cuenta de Azure, cree una cuenta gratuita antes de comenzar.
Para mayor facilidad de uso, pruebe el entorno de PowerShell en Azure Cloud Shell. Para obtener más información, consulte Inicio rápido para Azure Cloud Shell.
Si quiere usar PowerShell de forma local, instale el módulo Az PowerShell y conéctese a su cuenta de Azure con el cmdlet Connect-AzAccount. Asegúrese de ejecutar los comandos con privilegios de administración. Para más información, vea Instalar Azure PowerShell.
Asegúrese de que la identidad que usará para crear el clúster tenga 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 más de una suscripción a Azure, establezca la que se quiere usar para el inicio rápido mediante una llamada al cmdlet Set-AzContext. Para más información, consulte Administración de suscripciones de Azure con Azure PowerShell.
Si usa osSku
Windows2025, debe instalar laaks-previewextensión y registrar la marca de vista previa.La especificación del parámetro
OsSKUrequiere la versión 9.2.0 o una versión posterior del módulo Az de PowerShell.
Instalación de la aks-preview extensión
Importante
Las características en versión preliminar de AKS están disponibles a elección del usuario y en régimen de autoservicio. Las versiones preliminares se proporcionan "tal cual" y "como están disponibles", y están excluidas de los Acuerdos de nivel de servicio y garantía limitada. Las versiones preliminares de AKS cuentan con soporte parcial por parte del servicio al cliente en la medida de lo posible. Por lo tanto, estas características no están diseñadas para su uso en producción. Para más información, consulte los siguientes artículos de soporte:
- Instale la extensión
aks-previewAzure CLI mediante el comandoaz extension add.
az extension add --name aks-preview
- Actualiza a la última versión de la extensión mediante el comando
az extension update. Windows Server 2025 requiere un mínimo de 18.0.0b40.
az extension update --name aks-preview
Registro de la marca de característica AksWindows2025Preview
- Registre la marca de la característica
AksWindows2025Previewmediante el comando [az feature register][az-feature-register].
az feature register --name AksWindows2025Preview --namespace Microsoft.ContainerService
- Compruebe el estado del registro mediante el comando [
az feature show][az-feature-show]. Tarda unos minutos en que el estado muestre Registrado.
az feature show --name AksWindows2025Preview --namespace Microsoft.ContainerService
Cuando aparezca el estado Registrado, actualice el registro del proveedor de recursos Microsoft.ContainerService mediante el comando [
az provider register][az-provider-register].az provider register --namespace Microsoft.ContainerService
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 se crea un grupo de recursos, se le pide que especifique una ubicación. Esta ubicación es donde se almacenan los metadatos del grupo de recursos y el lugar en el que los recursos se ejecutan en Azure si no se especifica otra región al crearlos.
Cree un grupo de recursos mediante el cmdlet
New-AzResourceGroup. En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la región eastus.New-AzResourceGroup -Name myResourceGroup -Location eastusEn la salida de ejemplo siguiente se muestra que el grupo de recursos se creó correctamente:
ResourceGroupName : myResourceGroup Location : eastus ProvisioningState : Succeeded Tags : ResourceId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup
Creación de un clúster de AKS
En esta sección, se crea un clúster de AKS con la siguiente configuración:
- El clúster se configura con dos nodos para asegurarse de que funciona de forma confiable. Un nodo es una máquina virtual de Azure que ejecuta los componentes de nodo de Kubernetes y el entorno de ejecución del contenedor.
- Los parámetros
-WindowsProfileAdminUserNamey-WindowsProfileAdminUserPasswordestablecen las credenciales de administrador para los nodos de Windows Server del clúster y deben satisfacer los requisitos de complejidad de contraseña de Windows Server. - El grupo de nodos usa
VirtualMachineScaleSets.
Siga estos pasos para crear el clúster de AKS con Azure PowerShell:
Cree las credenciales de administrador para los contenedores de Windows Server mediante el siguiente comando. Este comando le pide que escriba
WindowsProfileAdminUserNameyWindowsProfileAdminUserPassword. La contraseña debe tener un mínimo de 14 caracteres y cumplir los requisitos de complejidad de contraseña de Windows Server.$AdminCreds = Get-Credential ` -Message 'Please create the administrator credentials for your Windows Server containers'Cree el clúster mediante el
New-AzAksClustercmdlet y especifique losWindowsProfileAdminUserNameparámetros yWindowsProfileAdminUserPassword.New-AzAksCluster -ResourceGroupName myResourceGroup ` -Name myAKSCluster ` -NodeCount 2 ` -NetworkPlugin azure ` -NodeVmSetType VirtualMachineScaleSets ` -WindowsProfileAdminUserName $AdminCreds.UserName ` -WindowsProfileAdminUserPassword $secureString ` -GenerateSshKeyTranscurridos unos minutos, el comando se completa y devuelve información en formato JSON sobre el clúster. En ocasiones, el clúster puede tardar más de unos minutos en aprovisionarse. Espere hasta 10 minutos para que se produzca el aprovisionamiento.
Si recibe un error de validación de contraseña y la contraseña que estableció cumple los requisitos de longitud y complejidad, pruebe a crear el grupo de recursos en otra región. A continuación, intente crear el clúster con el nuevo grupo de recursos.
Si no especifica un nombre de usuario y una contraseña de administrador al crear el grupo de nodos, el nombre de usuario se establece en azureuser y la contraseña se establece en un valor aleatorio. Para obtener más información, consulte las preguntas más frecuentes de Windows Server.
El nombre de usuario del administrador no se puede cambiar, pero la contraseña de administrador que el clúster de AKS usa para los nodos de Windows Server mediante
az aks updatesí que se puede cambiar. Para obtener más información, consulte las preguntas más frecuentes de Windows Server.Para ejecutar un clúster de AKS que admita grupos de nodos para contenedores de Windows Server, el clúster debe utilizar una directiva de red que use el complemento de red de Azure CNI (avanzado). El parámetro
-NetworkPlugin azureespecifica Azure CNI.
Adición de un grupo de nodos
De forma predeterminada, se crea un clúster de AKS con un grupo de nodos que puede ejecutar contenedores de Linux. Debe agregar otro grupo de nodos que pueda ejecutar contenedores de Windows Server en combinación con el grupo de nodos de Linux.
Para crear un grupo de nodos de Windows, debe especificar un valor admitido OsType y OsSku. Use la información de la tabla siguiente para determinar cuál es la adecuada para el clúster:
OsType |
OsSku |
Predeterminado | Versiones de K8s admitidas | Detalles |
|---|---|---|---|---|
windows |
Windows2025 |
Actualmente en vista previa No es el valor predeterminado. | 1.32+ | Valores predeterminados actualizados: containerd 2.0, la imagen de Generación 2 se usa por defecto. |
windows |
Windows2022 |
Valor predeterminado en K8s 1.25-1.35 | No disponible en K8s 1.36+ | Se retira en marzo de 2027. Valores predeterminados actualizados: FIPS está habilitado de forma predeterminada. |
windows |
Windows2019 |
Valor predeterminado en K8s 1.24 y versiones posteriores | No disponible en K8s 1.33+ | Se retira en marzo de 2026. |
Windows Server 2022 es el sistema operativo predeterminado para las versiones 1.25-1.35 de Kubernetes. Windows Server 2019 es el sistema operativo predeterminado para versiones anteriores. Si no especifica una SKU de sistema operativo determinada, Azure crea el grupo de nodos con la SKU predeterminada de la versión de Kubernetes que usa el clúster.
Nota:
- Windows Server 2019 se retira el 1 de marzo de 2026. Después de esa fecha, AKS ya no generará nuevas imágenes de nodo ni proporcionará revisiones de seguridad. Después de esa fecha, no podrá crear nuevos grupos de nodos con Windows Server 2019 en ninguna versión de Kubernetes. No se admitirán todos los grupos de nodos existentes con Windows Server 2019. Windows Server 2019 no se admite en la versión 1.33 de Kubernetes y posteriores. A partir del 1 de abril de 2027, AKS quitará todas las imágenes de nodo existentes para Windows Server 2019, lo que significa que se producirá un error en las operaciones de escalado.
- Windows Server 2022 se retira el 15 de marzo de 2027. Después de esa fecha, AKS ya no generará nuevas imágenes de nodo ni proporcionará revisiones de seguridad. Después de esa fecha, no podrá crear nuevos grupos de nodos con Windows Server 2022 en ninguna versión de Kubernetes. No se admitirán todos los grupos de nodos existentes con Windows Server 2022. Windows Server 2022 no se admite en la versión 1.36 y posteriores de Kubernetes. A partir del 1 de abril de 2028, AKS quitará todas las imágenes de nodo existentes para Windows Server 2022, lo que significa que se producirá un error en las operaciones de escalado.
Para más información, consulte las Notas de la versión de AKS. Para mantenerse al día en las versiones más recientes del sistema operativo Windows Server y obtener más información sobre nuestra hoja de ruta de lo que está planeado para el soporte técnico en AKS, vea nuestra hoja de ruta pública de AKS.
Agregue un grupo de nodos de Windows Server mediante el
New-AzAksNodePoolcmdlet . El siguiente comando crea un nuevo grupo de nodos denominado npwin y lo agrega a myAKSCluster. El comando también usa la subred predeterminada en la red virtual predeterminada que se crea al ejecutarNew-AzAksCluster:New-AzAksNodePool -ResourceGroupName myResourceGroup ` -ClusterName myAKSCluster ` -VmSetType VirtualMachineScaleSets ` -OsType Windows ` -OsSKU Windows2022 ` -Name npwin
Conectarse al clúster
Para administrar un clúster de Kubernetes, usará kubectl, el cliente de línea de comandos de Kubernetes. Si usa Azure Cloud Shell, kubectl ya está instalado. Para instalar kubectl localmente, puede usar el cmdlet Install-AzAzAksCliTool.
Para configurar
kubectlpara conectarse al clúster de Kubernetes, use el cmdletImport-AzAksCredential. Con este comando se descargan las credenciales y se configura la CLI de Kubernetes para usarlas.Import-AzAksCredential -ResourceGroupName myResourceGroup -Name myAKSClusterCompruebe la conexión al clúster usando el comando
kubectl get, que devuelve una lista de los nodos del clúster.kubectl get nodesEn la salida del ejemplo siguiente se muestran todos los nodos del clúster. Asegúrese de que el estado de todos los nodos sea Listo:
NAME STATUS ROLES AGE VERSION aks-nodepool1-20786768-vmss000000 Ready agent 22h v1.27.7 aks-nodepool1-20786768-vmss000001 Ready agent 22h v1.27.7 aksnpwin000000 Ready agent 21h v1.27.7
Implementación de la aplicación
Un archivo de manifiesto de Kubernetes define un estado deseado del clúster, por ejemplo, qué imágenes de contenedor se van a ejecutar. En este artículo, usará un manifiesto para crear todos los objetos necesarios para ejecutar la aplicación de ejemplo de ASP.NET en un contenedor de Windows Server. Este manifiesto incluye una implementación de Kubernetes para la aplicación de ejemplo de ASP.NET y un servicio de Kubernetes externo para acceder a la aplicación desde Internet.
La aplicación de ejemplo de ASP.NET se proporciona como parte de los ejemplos de .NET Framework y se ejecuta en un contenedor de Windows Server. AKS requiere contenedores de Windows Server que se basen en las imágenes de Windows Server 2019 u otra versión posterior. El archivo de manifiesto de Kubernetes también debe definir un selector de nodos que le indique al clúster de AKS que ejecute el pod de la aplicación de ejemplo de ASP.NET en un nodo que pueda ejecutar contenedores de Windows Server.
Cree un archivo denominado
sample.yamly copie en la siguiente definición de YAML:apiVersion: apps/v1 kind: Deployment metadata: name: sample labels: app: sample spec: replicas: 1 template: metadata: name: sample labels: app: sample spec: nodeSelector: "kubernetes.io/os": windows containers: - name: sample image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp resources: limits: cpu: 1 memory: 800M ports: - containerPort: 80 selector: matchLabels: app: sample --- apiVersion: v1 kind: Service metadata: name: sample spec: type: LoadBalancer ports: - protocol: TCP port: 80 selector: app: samplePara obtener un desglose de los archivos de manifiesto de YAML, consulte Implementaciones y manifiestos de YAML.
Si crea y guarda el archivo YAML localmente, para cargar el archivo de manifiesto en el directorio predeterminado de CloudShell, seleccione el botón Cargar y descargar archivos y elija el archivo en el sistema de archivos local.
Implemente la aplicación mediante el comando
kubectl applyy especifique el nombre del manifiesto de YAML.kubectl apply -f sample.yamlEn la salida de ejemplo siguiente se muestra la implementación y el servicio creados correctamente:
deployment.apps/sample created service/sample 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. En ocasiones, el servicio puede tardar más de unos minutos en aprovisionarse. Espere hasta 10 minutos para que se produzca el aprovisionamiento.
Compruebe el estado de los pods implementados con el comando
kubectl get pods. Antes de continuar, haz que todos los pods tengan el estadoRunning.kubectl get podsPara supervisar el progreso, use el comando
kubectl get servicecon el argumento--watch.kubectl get service sample --watchInicialmente, la salida muestra el parámetro EXTERNAL-IP del servicio de ejemplo como pendiente:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE sample LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6sCuando la dirección EXTERNAL-IP cambie de pendiente a una dirección IP pública real, use
CTRL-Cpara detener el proceso de inspección dekubectl.En la salida del ejemplo siguiente se muestra una dirección IP pública válida asignada al servicio:
sample LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2mPara ver la aplicación de ejemplo en acción, abra un explorador web en la dirección IP externa del servicio.
Eliminar recursos
Si no planea realizar el tutorial de AKS, elimine el clúster para evitar incurrir en cargos de Azure.
Quite el grupo de recursos, el servicio de contenedor y todos los recursos relacionados mediante el
Remove-AzResourceGroupcmdlet .Remove-AzResourceGroup -Name myResourceGroupNota:
El clúster de AKS se creó con una identidad administrada asignada por el sistema (la opción de identidad predeterminada usada en este inicio rápido). La plataforma de Azure administra esta identidad, por lo que no requiere eliminación.
Pasos siguientes
En este inicio rápido, ha implementado un clúster de Kubernetes y, después, una aplicación de ejemplo de ASP.NET en un contenedor de Windows Server de este. Esta aplicación de ejemplo es solo para fines de demostración y no representa todos los procedimientos recomendados para las aplicaciones de Kubernetes. Para instrucciones sobre cómo crear soluciones completas con AKS para producción, consulte Guía de soluciones de AKS.
Para más información sobre AKS y obtener un ejemplo completo desde el código hasta la implementación, continúe con el tutorial del clúster de Kubernetes.