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.
Este artículo le ayuda a implementar un clúster de AKS basado en vínculo privado. Si está interesado en crear un clúster de AKS sin necesidad de un vínculo privado o túnel, consulte Crear un clúster de Azure Kubernetes Service (AKS) con la integración de VNet del servidor API.
Introducción a los clústeres privados en AKS
En un clúster privado, el servidor de la API o el plano de control tienen direcciones IP internas que se definen en el documento RFC1918 sobre la asignación de direcciones para conexiones privadas de Internet. Mediante el uso de un clúster privado, puede asegurarse de que el tráfico entre el servidor de API y los grupos de nodos permanece solo en la red privada.
El plano de control o servidor de API se encuentra en un grupo de recursos de Azure administrado por AKS y el clúster o grupo de nodos se encuentra en el grupo de recursos. El servidor y el grupo de clústeres o nodos pueden comunicarse entre sí a través del servicio Azure Private Link en la red virtual del servidor de API y un punto de conexión privado expuesto en la subred del clúster de AKS.
Al crear un clúster de AKS privado, AKS crea nombres de dominio completos (FQDN) públicos y privados con las zonas DNS correspondientes de forma predeterminada. Para obtener opciones detalladas de configuración de DNS, consulte Configuración de una zona DNS privada, una subzona DNS privada o un subdominio personalizado.
Disponibilidad regional
Los clústeres privados están disponibles en las regiones públicas, en Azure Government y en Microsoft Azure operado por 21Vianet, donde se admite AKS.
Requisitos previos para clústeres de AKS privados
- La CLI de Azure versión 2.28.0 o posterior. Ejecute
az --versionpara buscar la versión y ejecuteaz upgradepara actualizar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure. - Si usa Azure Resource Manager (ARM) o la API REST de Azure, la versión de la API de AKS debe ser 2021-05-01 o posterior.
- Para usar un servidor DNS personalizado, agregue la dirección IP pública de Azure 168.63.129.16 como servidor DNS ascendente en el servidor DNS personalizado y asegúrese de agregar esta dirección IP pública como primer servidor DNS. Para más información sobre la dirección IP de Azure, consulte ¿Qué es la dirección IP 168.63.129.16?
- La zona DNS del clúster debe ser lo que reenvía a 168.63.129.16. Puede encontrar más información sobre los nombres de zona en la configuración de zona DNS de servicios de Azure.
- Los clústeres de AKS existentes habilitados con la integración con red virtual del servidor de API pueden tener habilitado el modo de clúster privado. Para obtener más información, consulte Habilitación o deshabilitación del modo de clúster privado en un clúster existente con integración con red virtual de API Server.
Importante
A partir del 30 de noviembre de 2025, Azure Kubernetes Service (AKS) ya no admite ni proporciona actualizaciones de seguridad para Azure Linux 2.0. La imagen de nodo de Linux 2.0 de Azure está congelada en la versión 202512.06.0. A partir del 31 de marzo de 2026, se quitarán las imágenes de nodo y no podrá escalar los grupos de nodos. Migre a una versión compatible de Azure Linux mediante la actualización de los grupos de nodos a una versión de Kubernetes compatible o la migración a osSku AzureLinux3. Para más información, consulte [Retirada] Grupos de nodos de Azure Linux 2.0 en AKS.
Limitaciones y consideraciones para clústeres de AKS privados
- No se pueden aplicar intervalos ip autorizados al punto de conexión del servidor de API privado; solo se aplican al servidor de API público.
- Las limitaciones del servicio Azure Private Link aplican a los clústeres privados.
- No se admiten agentes hospedados por Microsoft en Azure DevOps con clústeres privados. Considere la posibilidad de usar agentes autohospedados.
- Si necesita habilitar Azure Container Registry en un clúster de AKS privado, configure un vínculo privado para el registro de contenedor en la red virtual del clúster (VNet) o configure el emparejamiento entre la red virtual del registro de contenedor y la red virtual del clúster privado.
- La eliminación o modificación del punto de conexión privado en la subred del cliente hace que el clúster deje de funcionar.
- El servicio Azure Private Link solo se admite en Standard Azure Load Balancer. No se admite en Basic Azure Load Balancer.
Red en estrella con DNS personalizado para clústeres privados de AKS
Las arquitecturas hub and spoke suelen usarse para implementar redes en Azure. En muchas de estas implementaciones, los valores de DNS en las redes virtuales de radios están configurados para hacer referencia a un reenviador de DNS central con el fin de permitir la resolución de DNS local y basada en Azure.
Tenga en cuenta las siguientes consideraciones al implementar clústeres de AKS privados en arquitecturas de hub y spoke con DNS personalizado.
Cuando se crea un clúster privado, se crea un punto de conexión privado (1) y una zona DNS privada (2) en el grupo de recursos administrados por clúster de forma predeterminada. El clúster usa un registro
Aen la zona privada a fin de resolver la dirección IP del punto de conexión privado para la comunicación con el servidor de la API.La zona DNS privada solo está vinculada a la red virtual a la que están conectados los nodos del clúster (3), lo que significa que los hosts de esa red virtual vinculada solo pueden resolver el punto de conexión privado. En escenarios en los que no se configura ningún DNS personalizado en la red virtual (valor predeterminado), funciona sin problema, ya que los hosts apuntan a 168.63.129.16 para DNS que pueden resolver registros en la zona DNS privada debido al vínculo.
Si mantiene el comportamiento predeterminado de la zona DNS privada, AKS intenta vincular la zona directamente a la red virtual satélite que hospeda el clúster, incluso cuando la zona ya está vinculada a una red virtual central.
En redes virtuales radiales que usan servidores DNS personalizados, esta acción puede producir un error si la identidad administrada del clúster carece de colaborador de red en la red virtual radial.
Para evitar el error, elija una de las siguientes configuraciones admitidas:
-
Zona DNS privada personalizada: proporcione una zona privada precreada y establezca en
privateDNSZone/--private-dns-zonesu identificador de recurso. Vincule esa zona a la VNet adecuada (por ejemplo, la VNet del hub) y configurepublicDNS,falseo use--disable-public-fqdn. -
Solo DNS público: deshabilite la creación de zonas privadas estableciendo
privateDNSZone/--private-dns-zoneennoney dejepublicDNSen su valor predeterminado (true) / no use--disable-public-fqdn.
-
Zona DNS privada personalizada: proporcione una zona privada precreada y establezca en
Si va a usar su propia tabla de rutas (BYO) con kubenet, así como su propio DNS, con clústeres privados, se produce un error en la creación del clúster. Tendrá que asociar
RouteTableen el grupo de recursos del nodo a la subred después de que se haya producido un error en la creación del clúster, con el fin de que la creación se realice correctamente.
Tenga en cuenta las siguientes limitaciones al usar DNS personalizado con clústeres de AKS privados:
-
privateDNSZone/ la configuración de--private-dns-zonenoneypublicDNS: false/--disable-public-fqdnal mismo tiempo. - El reenvío condicional no admite subdominios.
Creación de un clúster de AKS privado con redes básicas predeterminadas
Cree un grupo de recursos con el comando
az group create. También puede usar un grupo de recursos existente para el clúster de AKS.az group create \ --name <private-cluster-resource-group> \ --location <location>Cree un clúster privado con redes básicas predeterminadas mediante el comando
az aks createcon la marca--enable-private-cluster.Parámetros clave en este comando:
-
--enable-private-cluster: habilita el modo de clúster privado.
az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --generate-ssh-keys-
Configure kubectl para conectarse al clúster de AKS privado.
Creación de un clúster de AKS privado con redes avanzadas
Cree un grupo de recursos con el comando
az group create. También puede usar un grupo de recursos existente para el clúster de AKS.az group create \ --name <private-cluster-resource-group> \ --location <location>Cree un clúster privado con redes avanzadas mediante el
az aks createcomando .Parámetros clave en este comando:
-
--enable-private-cluster: habilita el modo de clúster privado. -
--network-plugin azure: especifica el complemento de red de Azure CNI. -
--vnet-subnet-id: el identificador de recurso de una subred existente en una red virtual. -
--dns-service-ip: una dirección IP disponible dentro del intervalo de direcciones del servicio Kubernetes que se va a usar para el servicio DNS del clúster. -
--service-cidr: intervalo IP de notación CIDR desde el que se van a asignar direcciones IP del clúster de servicio.
az aks create \ --resource-group <private-cluster-resource-group> \ --name <private-cluster-name> \ --load-balancer-sku standard \ --enable-private-cluster \ --network-plugin azure \ --vnet-subnet-id <subnet-id> \ --dns-service-ip 10.2.0.10 \ --service-cidr 10.2.0.0/24 --generate-ssh-keys-
Configure kubectl para conectarse al clúster de AKS privado.
Uso de dominios personalizados con clústeres de AKS privados
Si desea configurar dominios personalizados que solo se pueden resolver internamente, consulte Uso de dominios personalizados.
Deshabilitar un FQDN público en un clúster privado de AKS
Deshabilita un FQDN público en un nuevo clúster
Deshabilite un FQDN público al crear un clúster de AKS privado mediante el comando
az aks createcon la marca--disable-public-fqdn.az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resource-id> \ --private-dns-zone <private-dns-zone-mode> \ --disable-public-fqdn \ --generate-ssh-keys
Deshabilitar un FQDN público en un clúster existente
Deshabilite un FQDN público en un clúster de AKS existente mediante el comando
az aks updatecon la marca--disable-public-fqdn.az aks update \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --disable-public-fqdn
Configuración de una zona DNS privada, una subzona DNS privada o un subdominio personalizado para un clúster de AKS privado
Puede configurar las opciones de DNS privadas para un clúster de AKS privado mediante la CLI de Azure (con el --private-dns-zone parámetro) o una plantilla de Azure Resource Manager (ARM) (con la privateDNSZone propiedad ). En la tabla siguiente se describen las opciones disponibles para el --private-dns-zone parámetro / privateDNSZone propiedad:
| Configuración | Description |
|---|---|
system |
Valor predeterminado al configurar una zona DNS privada. Si omite --private-dns-zone / privateDNSZone, AKS crea una zona DNS privada en el grupo de recursos del nodo. |
none |
Si establece --private-dns-zone / privateDNSZone en none, AKS no crea una zona DNS privada. |
<custom-private-dns-zone-resource-id> |
Para usar este parámetro, debe crear una zona DNS privada en el siguiente formato para la nube global de Azure: privatelink.<region>.azmk8s.io o <subzone>.privatelink.<region>.azmk8s.io. Necesita el identificador de recurso de la zona DNS privada para su uso futuro. También necesita una identidad asignada al usuario o un principal de servicio con los roles colaborador de zona DNS privada y colaborador de red. En el caso de los clústeres que usan la integración con red virtual del servidor de API, una zona DNS privada admite el formato de nomenclatura de private.<region>.azmk8s.io o <subzone>.private.<region>.azmk8s.io.
No puede cambiar ni eliminar este recurso después de crear el clúster, ya que puede causar problemas de rendimiento y errores de actualización del clúster. Puede usar --fqdn-subdomain <subdomain> solo con <custom-private-dns-zone-resource-id> para proporcionar funcionalidades de subdominio para privatelink.<region>.azmk8s.io. Si especifica una subzona, hay un límite de 32 caracteres para el <subzone> nombre. |
Tenga en cuenta las siguientes consideraciones al configurar DNS privado para un clúster de AKS privado:
- Si la zona DNS privada está en una suscripción diferente del clúster de AKS, debe registrar el proveedor de Azure
Microsoft.ContainerServicesen ambas suscripciones. - Si el clúster de AKS está configurado con una entidad de servicio de Active Directory, AKS no admite el uso de una identidad administrada asignada por el sistema con una zona DNS privada personalizada. El clúster debe usar autenticación de identidad administrada asignada por el usuario.
Creación de un clúster de AKS privado con una zona DNS privada
Cree un clúster de AKS privado con una zona DNS privada mediante el
az aks createcomando .Parámetros clave en este comando:
-
--enable-private-cluster: habilita el modo de clúster privado. -
--private-dns-zone [system|none]: configura la zona DNS privada para el clúster. El valor predeterminado essystem. -
--assign-identity <resource-id>: el identificador de recurso de una identidad administrada asignada por el usuario con los roles Colaborador de zona DNS privada y Colaborador de red .
az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resource-id> \ --private-dns-zone [system|none] \ --generate-ssh-keys-
Configure kubectl para conectarse al clúster de AKS privado.
Creación de un clúster de AKS privado con una zona DNS privada o una subzona DNS privada personalizada
Cree un clúster de AKS privado con una zona DNS privada personalizada o una subzona mediante el
az aks createcomando .Parámetros clave en este comando:
-
--enable-private-cluster: habilita el modo de clúster privado. -
--private-dns-zone <custom-private-dns-zone-resource-id>|<custom-private-dns-subzone-resource-id>: el identificador de recurso de una zona DNS privada o una subzona precreadas en el siguiente formato para la nube global de Azure:privatelink.<region>.azmk8s.ioo<subzone>.privatelink.<region>.azmk8s.io. -
--assign-identity <resource-id>: el identificador de recurso de una identidad administrada asignada por el usuario con los roles Colaborador de zona DNS privada y Colaborador de red .
# The custom private DNS zone name should be in the following format: "<subzone>.privatelink.<region>.azmk8s.io" az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resource-id> \ --private-dns-zone [<custom-private-dns-zone-resource-id>|<custom-private-dns-subzone-resource-id>] \ --generate-ssh-keys-
Configure kubectl para conectarse al clúster de AKS privado.
Creación de un clúster de AKS privado con una zona DNS privada personalizada y un subdominio personalizado
Cree un clúster de AKS privado con una zona DNS privada personalizada y un subdominio mediante el
az aks createcomando .Parámetros clave en este comando:
-
--enable-private-cluster: habilita el modo de clúster privado. -
--private-dns-zone <custom-private-dns-zone-resource-id>: el identificador de recurso de una zona DNS privada precreada en el siguiente formato para la nube global de Azure:privatelink.<region>.azmk8s.io. -
--fqdn-subdomain <subdomain>: subdominio que se va a usar para el FQDN del clúster dentro de la zona DNS privada personalizada. -
--assign-identity <resource-id>: el identificador de recurso de una identidad administrada asignada por el usuario con los roles Colaborador de zona DNS privada y Colaborador de red .
# The custom private DNS zone name should be in one of the following formats: "privatelink.<region>.azmk8s.io" or "<subzone>.privatelink.<region>.azmk8s.io" az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resource-id> \ --private-dns-zone <custom-private-dns-zone-resource-id> \ --fqdn-subdomain <subdomain> \ --generate-ssh-keys-
Configure kubectl para conectarse al clúster de AKS privado.
Actualización de un clúster de AKS privado existente desde una zona DNS privada a pública
Solo puede actualizar de byo (BYO) o system a none. No se admite ninguna otra combinación de valores de actualización.
Advertencia
Al actualizar un clúster privado de byo o system a none, los nodos del agente cambian para usar un FQDN público. En un clúster de AKS que usa Virtual Machine Scale Sets de Azure, se realiza una actualización de la imagen del nodo para actualizar los nodos con el FQDN público.
Actualice un clúster privado de
byousystemanoneusando el comandoaz aks updatecon el parámetro--private-dns-zoneestablecido ennone.az aks update \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --private-dns-zone none
Configuración de kubectl para conectarse a un clúster de AKS privado
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 kubectl localmente, use el comando az aks install-cli.
Configure
kubectlpara conectarse a su clúster de Kubernetes utilizando el comandoaz aks get-credentials. Con este comando se descargan las credenciales y se configura la CLI de Kubernetes para usarlas.az aks get-credentials --resource-group <private-cluster-resource-group> --name <private-cluster-name>Compruebe la conexión al clúster con el comando
kubectl get. Este comando devuelve una lista de los nodos del clúster.kubectl get nodesEl comando devuelve una salida similar a la salida de ejemplo siguiente:
NAME STATUS ROLES AGE VERSION aks-nodepool1-12345678-vmss000000 Ready agent 3h6m v1.15.11 aks-nodepool1-12345678-vmss000001 Ready agent 3h6m v1.15.11 aks-nodepool1-12345678-vmss000002 Ready agent 3h6m v1.15.11