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, este artículo le guiará por los pasos para configurar la compatibilidad con el 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 Local y crear clústeres de Kubernetes mediante PowerShell.
Antes de empezar
Asegúrese de que cumple 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 los siguientes valores:
- 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 addresses excludes 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 desee excluir el espacio de nombres de empresa (.contoso.com) de que se dirija a través del proxy. Para conseguirlo, especifique los valores en la lista noProxy
.
Establecimiento del proxy para clústeres de Azure Local y Windows Server con la configuración de proxy de todo el equipo
Si ya tiene la configuración de proxy de todo el equipo en el clúster de Azure Local/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 la 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 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 obtener más información y siga la documentación de Azure Local para configurar la configuración del proxy en los nodos de 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 en toda la pila.
Importante
Si el proxy requiere que el certificado sea de confianza para los nodos físicos de Azure Local, asegúrese de importar la cadena de certificados al almacén de certificados adecuado en cada nodo local de Azure antes de continuar. Siga los procedimientos para que la implementación inscriba los nodos locales de Azure con los certificados necesarios para la autenticación de 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 Local o Windows Server; para ello, ejecute Set-AksHciConfig
seguido de Install-AksHci
.