Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel leert u hoe u AKS-clusters (Azure Kubernetes Service) configureert voor het gebruik van een HTTP-proxy voor uitgaande internettoegang.
AKS-clusters die zijn geïmplementeerd in beheerde of aangepaste virtuele netwerken, hebben bepaalde uitgaande afhankelijkheden die nodig zijn om goed te functioneren, waardoor problemen zijn ontstaan in omgevingen waarvoor internettoegang moet worden gerouteerd via HTTP-proxy's. Nodes hadden geen manier om de configuratie, omgevingsvariabelen en certificaten op te starten die nodig zijn om toegang te krijgen tot internetdiensten.
De HTTP-proxyfunctie voegt ondersteuning voor HTTP-proxy toe aan AKS-clusters en onthult een eenvoudige interface die je kunt gebruiken om het door AKS vereiste netwerkverkeer in proxy-afhankelijke omgevingen te beveiligen. Met deze functie worden zowel AKS-nodes als pods geconfigureerd om de HTTP-proxy te gebruiken. Met deze functie kunt u ook een vertrouwde certificeringsinstantie installeren op de knooppunten als onderdeel van het opstarten van een cluster. Complexere oplossingen vereisen mogelijk een vertrouwensketen om beveiligde communicatie in het netwerk tot stand te brengen.
Beperkingen en overwegingen
De volgende scenario's worden niet ondersteund:
- Verschillende proxyconfiguraties per knooppuntgroep
- Gebruiker/Wachtwoordverificatie
- Aangepaste certificaatautoriteiten (CA's) voor API-servercommunicatie
- AKS-clusters met Windows-knooppuntgroepen
- Node pools die Virtual Machine Availability Sets (VMAS) gebruiken
- * gebruiken als jokerteken dat is gekoppeld aan een domeinachtervoegsel voor noProxy
httpProxy
, httpsProxy
en trustedCa
standaard geen waarde hebben. Pods worden geïnjecteerd met de volgende omgevingsvariabelen:
HTTP_PROXY
http_proxy
HTTPS_PROXY
https_proxy
NO_PROXY
no_proxy
Als u de injectie van de proxyomgevingsvariabelen wilt uitschakelen, moet u aantekeningen toevoegen aan de Pod met "kubernetes.azure.com/no-http-proxy-vars":"true"
.
Voordat je begint
- U hebt de nieuwste versie van de Azure CLI nodig. Voer
az --version
uit om de versie te vinden en voeraz upgrade
uit om de versie te upgraden. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren. - Controleer op beschikbare updates voor AKS-clusters om ervoor te zorgen dat je de nieuwste versie van AKS gebruikt. Zie Een AKS-cluster upgraden als u een upgrade wilt uitvoeren.
- Een HTTP-proxy configureren met behulp van de Azure CLI
- Een HTTP-proxy configureren met behulp van een ARM-sjabloon (Azure Resource Manager)
- Istio Add-On HTTP-proxy voor externe services
U kunt een AKS-cluster configureren met een HTTP-proxy tijdens de creatie van het cluster door de az aks create
-opdracht te gebruiken en de configuratie door te geven als een JSON-bestand.
- Maak een bestand aan en geef waarden op voor
httpProxy
,httpsProxy
, ennoProxy
. Als uw omgeving dat vereist, geef dan een waarde op voortrustedCa
.
Het schema voor het configuratiebestand ziet er als volgt uit:
{
"httpProxy": "string",
"httpsProxy": "string",
"noProxy": [
"string"
],
"trustedCa": "string"
}
Controleer de vereisten voor elke parameter:
-
httpProxy
: Een proxy-URL om te gebruiken voor het maken van HTTP-verbindingen buiten de cluster. Het URL-schema moet zijnhttp
. -
httpsProxy
: Een proxy-URL om te gebruiken voor het maken van HTTPS-verbindingen buiten de cluster. Als niet anders aangegeven, dan wordthttpProxy
gebruikt voor zowel HTTP- als HTTPS-verbindingen. -
noProxy
: Een lijst met doeldomeinnamen, domeinen, IP-adressen of andere netwerk-CIDR's om proxying uit te sluiten. -
trustedCa
: Een string die debase64 encoded
alternatieve CA-certificaatinhoud bevat. Momenteel wordt alleen hetPEM
formaat ondersteund.
Belangrijk
Voor compatibiliteit met Go-gebaseerde componenten die deel uitmaken van het Kubernetes-systeem, moet het certificaat ondersteuning bieden aanSubject Alternative Names(SANs)
in plaats van de verouderde Common Name-certificaten.
Er zijn verschillen in applicaties met betrekking tot hoe ze voldoen aan de omgevingsvariabelen http_proxy
, https_proxy
, en no_proxy
. Curl en Python ondersteunen CIDR niet in no_proxy
, maar Ruby wel.
Voorbeeldinvoer:
{
"httpProxy": "http://myproxy.server.com:8080/",
"httpsProxy": "https://myproxy.server.com:8080/",
"noProxy": [
"localhost",
"127.0.0.1"
],
"trustedCA": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUgvVENDQmVXZ0F3SUJB...b3Rpbk15RGszaWFyCkYxMFlscWNPbWVYMXVGbUtiZGkvWG9yR2xrQ29NRjNURHg4cm1wOURCaUIvCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0="
}
- Maak een cluster met behulp van de
az aks create
opdracht met de--http-proxy-config
parameter die is ingesteld op het bestand dat u hebt gemaakt.
az aks create \
--name $clusterName \
--resource-group $resourceGroup \
--http-proxy-config aks-proxy-config.json \
--generate-ssh-keys
Je cluster moet initialiseren met de HTTP-proxy geconfigureerd op de nodes.
Cluster bijwerken om http-proxyconfiguratie in te schakelen of bij te werken
Opmerking
Als u overschakelt naar een nieuwe proxy, moet deze nieuwe proxy al bestaan om de update succesvol te laten zijn. Nadat de upgrade is voltooid, kun je de oude proxy verwijderen.
De HTTP-proxyconfiguratie kan worden ingeschakeld of bijgewerkt op een bestaand cluster met behulp van de az aks update
opdracht. De --http-proxy-config
parameter moet worden ingesteld op een nieuw JSON-bestand met bijgewerkte waarden voorhttpProxy
, httpsProxy
noProxy
en trustedCa
indien nodig. De update injecteert nieuwe omgevingsvariabelen in pods met de nieuwe httpProxy
, httpsProxy
of noProxy
waarden. Pods moeten worden geroteerd zodat de apps de wijzigingen oppikken, omdat de omgevingsvariabelewaarden door een muterende toegangswebhook worden geïnjecteerd. Voor componenten binnen Kubernetes, zoals containerd en het knooppunt zelf, wordt dit pas van kracht wanneer een upgrade van de knooppunt-afbeelding is uitgevoerd.
Bijvoorbeeld, stel dat je een nieuw bestand hebt gemaakt met de base64-gecodeerde string van het nieuwe CA-certificaat met de naam aks-proxy-config-2.json. Je kunt de proxyconfiguratie op je cluster bijwerken met het volgende commando:
az aks update --name $clusterName --resource-group $resourceGroup --http-proxy-config aks-proxy-config-2.json
AKS-knooppuntinstallatiekopieën upgraden
Nadat u de proxy hebt geconfigureerd, moet u de node-image upgraden om de wijzigingen toe te passen. Het upgradeproces voor knooppuntinstallatiekopieën is de enige manier om de besturingssysteembestanden bij te werken die nodig zijn voor proxyconfiguratie-updates. Het upgradeproces voor knooppuntinstallatiekopieën is een rolling upgrade waarmee de installatiekopieën van het besturingssysteem op elk knooppunt in de knooppuntgroep worden bijgewerkt. Het AKS-besturingsvlak verwerkt het upgradeproces, dat geen verstoring veroorzaakt voor lopende toepassingen.
Zie AKS-knooppuntinstallatiekopieën upgraden om AKS-knooppuntinstallatiekopieën (Azure Kubernetes Service) bij te werken.
Bewaking van de add-on configuratie
HTTP-proxy met de monitoring-add-on ondersteunt de volgende configuraties:
- Uitgaande proxy zonder authenticatie
- Uitgaande proxy met gebruikersnaam en wachtwoord authenticatie
- Uitgaande proxy met vertrouwde certificaat voor Log Analytics-eindpunt
De volgende configuraties worden niet ondersteund:
- Maatwerkmetriek en Aanbevolen Waarschuwingen functies bij het gebruik van een proxy met vertrouwde certificaten
Volgende stappen
Voor meer informatie over de netwerkeisen van AKS-clusters, zie Egressverkeer beheren voor clusternodes in AKS.
Azure Kubernetes Service