Configuración del servidor proxy en AKS habilitado por Azure Arc

Se aplica a: AKS en Azure Stack HCI 22H2, AKS en Windows Server

En este artículo se describe cómo configurar los valores de proxy para AKS habilitados por Azure Arc. Si la red requiere el uso de un servidor proxy para conectarse a Internet, en este artículo se describen los pasos para configurar la compatibilidad con proxy en AKS mediante el módulo de PowerShell de AksHci . Los pasos son diferentes en función de si el servidor proxy requiere autenticación.

Nota

Si quiere usar Kubernetes y Azure Services con Azure Arc, asegúrese de agregar también las direcciones URL que se muestran en Conexión de un clúster de Kubernetes existente a Azure Arc a la lista de permitidos.

Una vez que haya configurado la implementación mediante las siguientes opciones, puede instalar un host de AKS en Azure Stack HCI y crear clústeres de Kubernetes mediante PowerShell.

Antes de empezar

Asegúrese de que ha cumplido todos los requisitos previos en los requisitos del sistema.

Información de configuración del servidor proxy

La configuración del servidor proxy para la implementación de AKS incluye las siguientes opciones:

  • Dirección URL y puerto HTTP, como http://proxy.corp.contoso.com:8080.
  • Dirección URL y puerto HTTPS, como https://proxy.corp.contoso.com:8443.
  • (Opcional) Credenciales válidas para la autenticación en el servidor proxy.
  • (Opcional) Cadena de certificados válida si el servidor proxy está configurado para interceptar el tráfico SSL. Esta cadena de certificados se importará en todos los nodos de trabajo y del plano de control de AKS, así como en el clúster de administración para establecer una conexión de confianza con el servidor proxy.

Lista de exclusión para excluir subredes privadas de enviarse al proxy

La tabla siguiente contiene la lista de direcciones que debe excluir mediante el -noProxy parámetro en New-AksHciProxySetting.

Dirección IP Motivo de exclusión
localhost, 127.0.0.1 Tráfico de Localhost
.svc Tráfico interno del servicio Kubernetes, donde .svc representa un nombre comodín. Esto es similar a decir *.svc, pero no se usa ninguno en este esquema.
10.0.0.0/8 Espacio de direcciones de red privada.
172.16.0.0/12 Espacio de direcciones de red privada: CIDR del servicio Kubernetes.
192.168.0.0/16 Espacio de direcciones de red privada: CIDR del pod de Kubernetes.
.contoso.com`` | You might want to exempt your enterprise namespace (.contoso.com) from being directed through the proxy. To exclude all addresses in a domain, you must add the domain to the noProxy.contoso.comlist. Use a leading period rather than a wildcard (\*) character. In the example, the addressesexcludes addresses prefix1.contoso.com prefix2.contoso.com, , etc.

El valor predeterminado de noProxy es localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16. Aunque estos valores predeterminados funcionan para muchas redes, es posible que tenga que agregar más intervalos de subredes o nombres a la lista de exenciones. Por ejemplo, es posible que quiera excluir que el espacio de nombres de empresa (.contoso.com) se dirija a través del proxy. Para conseguirlo, especifique los valores en la lista noProxy.

Establecimiento del proxy para clústeres de Azure Stack HCI y Windows Server con la configuración de proxy para toda el equipo

Si ya tiene la configuración de proxy para todo el equipo en el clúster de Azure Stack HCI y Windows Server, la configuración podría invalidar cualquier configuración de proxy específica de AKS y provocar un error durante la instalación.

Para detectar si tiene una configuración de proxy para todo el equipo, ejecute el siguiente script en cada nodo del clúster físico:

$http_proxy = [System.Environment]::GetEnvironmentVariable("HTTP_PROXY", "Machine")
$https_proxy = [System.Environment]::GetEnvironmentVariable("HTTPS_PROXY", "Machine")
$no_proxy = [System.Environment]::GetEnvironmentVariable("NO_PROXY", "Machine")

if ($http_proxy -or $https_proxy) {
    if (-not $no_proxy) {
        Write-Host "Problem Detected! A machine-wide proxy server is configured, but no proxy exclusions are configured"
    }
}

Configure exclusiones de proxy para todo el equipo en cada host físico del clúster donde se detectó el problema.

Ejecute el siguiente script de PowerShell y reemplace la cadena de parámetro $no_proxy por una cadena de exclusión NO_PROXY adecuada para su entorno. Para obtener información sobre cómo configurar correctamente una noProxy lista para su entorno, consulte Lista de exclusión para excluir subredes privadas de enviarse al proxy.

$no_proxy = "localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com"
[Environment]::SetEnvironmentVariable("NO_PROXY", $no_proxy, "Machine")
$env:NO_PROXY = [System.Environment]::GetEnvironmentVariable("NO_PROXY", "Machine")

Nota:

Se recomienda usar la misma configuración de proxy en todos los nodos del clúster de conmutación por error. Tener una configuración de proxy diferente en distintos nodos físicos del clúster de conmutación por error podría provocar resultados inesperados o problemas de instalación. Además, una dirección IP con un carácter comodín (*), como 172.*, no es válido. La dirección IP debe estar en notación CIDR adecuada (172.0.0.0/8).

Instalación del módulo AksHci de PowerShell

Configure las opciones de proxy del sistema en cada uno de los nodos físicos del clúster y asegúrese de que todos los nodos tengan acceso a las direcciones URL y los puertos descritos en Requisitos del sistema.

Si usa PowerShell remoto, debe utilizar CredSSP.

Cierre todas las ventanas de PowerShell abiertas antes de ejecutar el siguiente comando:

Install-Module -Name AksHci -Repository PSGallery

Si el entorno usa un servidor proxy para acceder a Internet, es posible que tenga que agregar parámetros de proxy al comando Install-Module antes de instalar AKS. Consulte la documentación de Install-Module para más información y siga la documentación de Azure Stack HCI para configurar los valores de proxy en los nodos del clúster físico.

Al descargar el módulo de PowerShell de AksHci , también se descargan los módulos de Az PowerShell necesarios para registrar un host de AKS con Azure para la facturación.

Configuración de un host de AKS para un servidor proxy con autenticación básica

Si el servidor proxy requiere autenticación, abra PowerShell como administrador y ejecute los siguientes comandos para obtener las credenciales y establezca los detalles de configuración:

$proxyCred = Get-Credential
$proxySetting=New-AksHciProxySetting -name "corpProxy" -http http://contosoproxy:8080 -https https://contosoproxy:8443 -noProxy localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com -credential $proxyCredential

Configuración de un host de AKS para un servidor proxy sin autenticación

Si el servidor proxy no requiere autenticación, ejecute el siguiente comando:

$proxySetting=New-AksHciProxySetting -name "corpProxy" -http http://contosoproxy:8080 -https https://contosoproxy:8443 -noProxy localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com

Configuración de un host de AKS para un servidor proxy con un certificado de confianza

Si el servidor proxy requiere que los clientes proxy confíen en un certificado, especifique el archivo de certificado cuando ejecute Set-AksHciConfig. El formato del archivo de certificado es X.509 codificado en Base-64. Esto le permite crear y confiar en el certificado a lo largo de la pila.

Importante

Si el proxy requiere que los nodos físicos de Azure Stack HCI confíen en un certificado, asegúrese de importar la cadena de certificados al almacén de certificados adecuado en cada nodo de Azure Stack HCI antes de continuar. Siga los procedimientos de la implementación para inscribir los nodos de Azure Stack HCI con los certificados necesarios para la autenticación del proxy.

$proxySetting=New-AksHciProxySetting -name "corpProxy" -http http://contosoproxy:8080 -https https://contosoproxy:8443 -noProxy localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.contoso.com -credential $proxyCredential

Nota

Los certificados de proxy deben proporcionarse como cadena o formato de archivo de intercambio de información personal (PFX), y contener la cadena de autoridad raíz para usar el certificado para la autenticación o para la configuración del túnel SSL.

Pasos siguientes

Ahora puede continuar con la instalación de AKS en el clúster de Azure Stack HCI o Windows Server; para ello, ejecute Set-AksHciConfig seguido de Install-AksHci.