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.
Un clúster de Azure Kubernetes Service (AKS) configurado con API Server VNet Integration proyecta el punto de conexión del servidor de API directamente en una subred delegada de la red virtual donde se implementa AKS. API Server VNet Integration permite la comunicación de red entre el servidor de API y los nodos del clúster sin necesidad de ningún vínculo privado o túnel. El servidor de API está disponible detrás de una dirección IP virtual de equilibrador de carga interno en la subred delegada, que los nodos estarán configurados para usar. Mediante API Server VNet Integration, puede asegurarse de que el tráfico de red entre el servidor de API y los grupos de nodos permanece solo en la red privada.
Conectividad del servidor de API
El plano de control o el servidor de la API están en una suscripción de Azure administrada mediante AKS. El grupo de clústeres o nodos se encuentra en la suscripción de Azure. El servidor y las máquinas virtuales que componen los nodos del clúster se pueden comunicar entre sí mediante la dirección IP virtual del servidor de API y las direcciones IP del pod que se proyectan en la subred delegada.
API Server VNet Integration se admite en clústeres públicos y privados. Puede agregar o quitar el acceso público después del aprovisionamiento del clúster. A diferencia de los clústeres integrados que no son de red virtual, los nodos del agente siempre se comunican directamente con la dirección IP privada de la dirección IP del equilibrador de carga interno (ILB) del servidor de API sin usar DNS. Todo el tráfico del nodo al servidor de API se mantiene en redes privadas y no se requiere ningún túnel para la conectividad del servidor de API al nodo. Los clientes fuera del clúster que necesitan comunicarse con el servidor de API pueden hacerlo normalmente si está habilitado el acceso a la red pública. Si el acceso a la red pública está deshabilitado, debe seguir la misma metodología de configuración de DNS privada que los clústeres privados estándar.
Requisitos previos
- Debe tener instalada la versión 2.73.0 o posterior de la CLI de Azure. Puede comprobar la versión mediante el
az --versioncomando .
Limitaciones
- La integración con red virtual del servidor de API no admite el cifrado de red virtual. Los clústeres implementados en las SKU de nodo de AKS v3 o anteriores (que no admiten el cifrado de red virtual) se permiten, pero no se cifrará el tráfico. Los clústeres implementados en nodos SKU de AKS v4 o posterior (que admiten cifrado de VNet) están bloqueados debido a que las VNets cifradas no son compatibles con la Integración de VNet del servidor API. Consulte SKU de máquina virtual compatibles con AKS para más información.
Disponibilidad
- La integración con red virtual de servidor de API está disponible en todas las regiones de nube pública de disponibilidad general, excepto eastus2 y qatarcentral. Estamos trabajando continuamente para habilitar esta característica en estas regiones y actualizaremos esta página cuando estas regiones estén disponibles.
Creación de un clúster de AKS con API Server VNet Integration mediante una red virtual administrada
Se pueden configurar los clústeres de AKS con API Server VNet Integration en una red virtual administrada o en el modo de aportación de la propia red virtual. Se pueden crear como clústeres públicos (con acceso al servidor de API disponible a través de una dirección IP pública) o clústeres privados (donde el servidor de API solo es accesible a través de la conectividad de red virtual privada). También se puede alternar entre un estado público y privado sin volver a implementar el clúster.
Crear un grupo de recursos
Cree un grupo de recursos con el comando
az group create.az group create --location westus2 --name <resource-group>
Implementación de un clúster público
Implemente un clúster de AKS público con API Server VNet Integration para la red virtual administrada mediante el comando
az aks createcon la marca--enable-api-server-vnet-integration.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-apiserver-vnet-integration \ --generate-ssh-keys
Implementación de un clúster privado
Implemente un clúster de AKS privado con API Server VNet Integration para la red virtual administrada mediante el comando
az aks createcon las marcas--enable-api-server-vnet-integrationy--enable-private-cluster.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-private-cluster \ --enable-apiserver-vnet-integration \ --generate-ssh-keys
Crear un clúster de AKS privado con API Server VNet Integration mediante la aportación de la propia red virtual
Al usar la red traiga su propia red, debe crear y delegar una subred del servidor de API en Microsoft.ContainerService/managedClusters, lo que concede a los servicios de AKS permisos para insertar los pods del servidor de API y el equilibrador de carga interno en esa subred. No puede usar la subred para ninguna otra carga de trabajo, pero puede usarla para varios clústeres de AKS ubicados en la misma red virtual. El tamaño mínimo admitido de subred del servidor de API es /28.
La identidad del clúster necesita permisos para la subred del servidor de API y la subred del nodo. La falta de permisos en la subred del servidor de API puede provocar un error de aprovisionamiento.
Advertencia
Un clúster de AKS reserva al menos 9 direcciones IP en el espacio de direcciones de subred. La ejecución de direcciones IP puede impedir el escalado del servidor de API y provocar una interrupción del servidor de API.
Crear un grupo de recursos
- Cree un grupo de recursos con el comando
az group create.
az group create --location <location> --name <resource-group>
Creación de una red virtual
Cree una red virtual mediante el comando
az network vnet create.az network vnet create --name <vnet-name> \ --resource-group <resource-group> \ --location <location> \ --address-prefixes 172.19.0.0/16Cree una subred de servidor de API mediante el comando
az network vnet subnet create.az network vnet subnet create --resource-group <resource-group> \ --vnet-name <vnet-name> \ --name <apiserver-subnet-name> \ --delegations Microsoft.ContainerService/managedClusters \ --address-prefixes 172.19.0.0/28Cree una subred de clúster mediante el comando
az network vnet subnet create.az network vnet subnet create --resource-group <resource-group> \ --vnet-name <vnet-name> \ --name <cluster-subnet-name> \ --address-prefixes 172.19.1.0/24
Creación de una identidad administrada y concesión de permisos en la red virtual
Crear una identidad administrada usando el comando
az identity create.az identity create --resource-group <resource-group> --name <managed-identity-name> --location <location>Asigne el rol Colaborador de red a la subred del servidor de API mediante el comando
az role assignment create.az role assignment create --scope <apiserver-subnet-resource-id> \ --role "Network Contributor" \ --assignee <managed-identity-client-id>Asigne el rol Colaborador de red a la subred del clúster mediante el comando
az role assignment create.az role assignment create --scope <cluster-subnet-resource-id> \ --role "Network Contributor" \ --assignee <managed-identity-client-id>
Implementación de un clúster público
Implemente un clúster de AKS público con API Server VNet Integration mediante el comando
az aks createcon la marca--enable-api-server-vnet-integration.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-apiserver-vnet-integration \ --vnet-subnet-id <cluster-subnet-resource-id> \ --apiserver-subnet-id <apiserver-subnet-resource-id> \ --assign-identity <managed-identity-resource-id> \ --generate-ssh-keys
Implementación de un clúster privado
Implemente un clúster de AKS privado con API Server VNet Integration mediante el comando
az aks createcon las marcas--enable-api-server-vnet-integrationy--enable-private-cluster.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --network-plugin azure \ --enable-private-cluster \ --enable-apiserver-vnet-integration \ --vnet-subnet-id <cluster-subnet-resource-id> \ --apiserver-subnet-id <apiserver-subnet-resource-id> \ --assign-identity <managed-identity-resource-id> \ --generate-ssh-keys
Conversión de un clúster de AKS existente en la integración con red virtual del servidor de API
Advertencia
La Integración de VNet del servidor API es una característica unidireccional y sensible a la capacidad.
Se requiere reiniciar manualmente.
Después de habilitar la integración con red virtual del servidor de API medianteaz aks update --enable-apiserver-vnet-integration, debe reiniciar inmediatamente el clúster para que el cambio surta efecto. Este reinicio no está automatizado. Retrasar el reinicio aumenta el riesgo de que la capacidad no esté disponible, lo que puede impedir que se inicie el servidor de API.La capacidad se valida, pero no está reservada.
AKS valida la capacidad regional al habilitar la característica en un clúster existente, pero esta validación no reserva capacidad. Si el reinicio se retrasa y la capacidad deja de estar disponible mientras tanto, es posible que el clúster no se inicie después de una detención o reinicio. Los clústeres que habilitaron esta característica antes de la disponibilidad general (GA), o que todavía no se han reiniciado desde que se habilitaron, no se someterán a la validación de capacidad.No se puede deshabilitar la característica.
Una vez habilitada, la característica es permanente. No se puede deshabilitar la integración con red virtual del servidor de API.
Esta actualización realiza una actualización de la versión de imagen de nodo en todos los grupos de nodos y reinicia todas las cargas de trabajo mientras se someten a una actualización gradual de la imagen.
Advertencia
La conversión de un clúster a la integración con red virtual del servidor de API da lugar a un cambio de la dirección IP del servidor de API, aunque el nombre de host sigue siendo el mismo. Si la dirección IP del servidor de API se ha configurado en cualquier firewall o reglas de grupo de seguridad de red, es posible que sea necesario actualizar esas reglas.
Actualice el clúster a API Server VNet Integration mediante el comando
az aks updatecon la marca--enable-apiserver-vnet-integration.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --enable-apiserver-vnet-integration \ --apiserver-subnet-id <apiserver-subnet-resource-id>
Habilitación o deshabilitación del modo de clúster privado en un clúster existente con integración con red virtual del servidor de API
Los clústeres de AKS configurados con la integración con red virtual del servidor de API pueden tener habilitado el acceso a la red pública o el modo de clúster privado o deshabilitado sin volver a implementar el clúster. El nombre de host del servidor de API no cambia, pero las entradas DNS públicas se modifican o se quitan si es necesario.
Nota:
--disable-private-cluster se encuentra actualmente en versión preliminar. Para obtener más información, consulte Niveles de referencia y soporte técnico.
Habilitación del modo de clúster privado
Habilite el modo de clúster privado mediante el comando
az aks updatecon la marca--enable-private-cluster.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --enable-private-cluster
Deshabilitación del modo de clúster privado
Deshabilite el modo de clúster privado mediante el comando
az aks updatecon la marca--disable-private-cluster.az aks update --name <cluster-name> \ --resource-group <resource-group> \ --disable-private-cluster
Conexión a un clúster mediante kubectl
Configure
kubectlpara conectarse al clúster ejecutando el comandoaz aks get-credentials.az aks get-credentials --resource-group <resource-group> --name <cluster-name>
Exposición del servidor de API a través de Private Link
Puede exponer el punto de conexión del servidor de API de un clúster privado con integración con red virtual del servidor de API mediante Azure Private Link. En los pasos siguientes se muestra cómo crear un servicio Private Link (PLS) en la red virtual del clúster y conectarse a ella desde otra red virtual o suscripción mediante un punto de conexión privado.
Creación de un clúster privado de integración con red virtual de API Server
Cree un clúster de AKS privado con API Server VNet Integration mediante el comando
az aks createcon las marcas--enable-api-server-vnet-integrationy--enable-private-cluster.az aks create --name <cluster-name> \ --resource-group <resource-group> \ --location <location> \ --enable-private-cluster \ --enable-apiserver-vnet-integration
Para obtener más instrucciones sobre cómo configurar Private Link con la integración con red virtual del servidor de API, consulte Private Link con la integración con red virtual del servidor de API.
Reglas de seguridad de NSG
De manera predeterminada, se permite todo el tráfico dentro de la red virtual. Pero si ha agregado reglas de NSG para restringir el tráfico entre diferentes subredes, asegúrese de que las reglas de seguridad de NSG permiten los siguientes tipos de comunicación:
| Destination | Fuente | Protocolo | Puerto | Uso |
|---|---|---|---|---|
| CIDR de subred de APIServer | Subred de clúster | TCP | 443 y 4443 | Necesario para habilitar la comunicación entre nodos y el servidor de API. |
| CIDR de subred de APIServer | Azure Load Balancer | TCP | 9988 | Necesario para habilitar la comunicación entre Azure Load Balancer y el servidor de API. También puede habilitar todas las comunicaciones entre Azure Load Balancer y el CIDR de subred del servidor de API. |
Pasos siguientes
- Para los procedimientos recomendados asociados, consulte Procedimientos recomendados con la conectividad de red y la seguridad en Azure Kubernetes Service (AKS).
- Para obtener instrucciones sobre cómo configurar un vínculo privado con la integración con red virtual del servidor de API, consulte Private Link con la integración con red virtual del servidor de API.