Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku se dozvíte, jak nakonfigurovat clustery Azure Kubernetes Service (AKS) pro použití HTTP proxy pro odchozí přístup k internetu.
Klastry AKS nasazené do spravovaných nebo vlastních virtuálních sítí mají určité závislosti na odchozích připojeních, které jsou nezbytné pro správnou funkci. To způsobilo problémy v prostředích, kde je přístup k internetu směrován přes HTTP proxy servery. Uzly neměly žádný způsob, jak inicializovat konfiguraci, proměnné prostředí a certifikáty potřebné pro přístup k internetovým službám.
Funkce HTTP proxy přidává podporu HTTP proxy klastrům AKS a odhaluje jednoduché rozhraní, které můžete použít k zabezpečení sítě vyžadované AKS v prostředích závislých na proxy. Díky této funkci jsou jak AKS uzly, tak i pody nakonfigurovány tak, aby používaly HTTP proxy. Funkce také umožňuje instalaci důvěryhodné certifikační autority na uzly jako součást inicializace clusteru. Komplexnější řešení mohou vyžadovat vytvoření řetězce důvěry pro zajištění bezpečné komunikace v celé síti.
Omezení a úvahy
Následující scénáře nejsou podporovány:
- Různé konfigurace proxy pro jednotlivé fondy uzlů
- Autentizace uživatele/hesla
- Vlastní certifikační autority (CA) pro komunikaci se serverem API
- AKS klustery s fondy uzlů Windows
- Pooly uzlů používající sady dostupnosti virtuálních strojů (VMAS)
- Použití * jako zástupného znaku připojeného k příponě domény pro noProxy
httpProxy, httpsProxy a trustedCa nemají ve výchozím nastavení žádnou hodnotu. Podům jsou přidány následující proměnné prostředí:
HTTP_PROXYhttp_proxyHTTPS_PROXYhttps_proxyNO_PROXYno_proxy
Pro zakázání injektování proměnných prostředí proxy musíte anotovat Pod pomocí "kubernetes.azure.com/no-http-proxy-vars":"true".
Než začnete
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Začínáme s Azure Cloud Shellem.
Pokud chcete spouštět referenční příkazy CLI lokálně, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Pro více informací, viz Jak spustit Azure CLI v Docker kontejneru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Chcete-li dokončit proces ověřování, postupujte podle kroků zobrazených ve vašem terminálu. Další možnosti přihlášení najdete v tématu Ověřování v Azure pomocí Azure CLI.
Když budete vyzváni, nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Použití a správa rozšíření pomocí Azure CLI.
Spusťte az version, abyste zjistili verzi a závislé knihovny, které jsou nainstalovány. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Vytvoření konfiguračního souboru s hodnotami proxy serveru HTTP
Vytvořte soubor a zadejte hodnoty pro httpProxy, httpsProxy, a noProxy. Pokud to vaše prostředí vyžaduje, zadejte hodnotu pro trustedCa.
Schéma konfiguračního souboru vypadá takto:
{
"httpProxy": "string",
"httpsProxy": "string",
"noProxy": [
"string"
],
"trustedCa": "string"
}
Zkontrolujte požadavky pro každý parametr:
-
httpProxy: Proxy URL, který se používá k vytváření HTTP připojení mimo cluster. Schéma URL musí býthttp. -
httpsProxy: Proxy URL k použití pro vytváření HTTPS připojení mimo clusteru. Pokud není uvedeno jinak, pak jehttpProxypoužit pro obě připojení HTTP a HTTPS. -
noProxy: Seznam cílových doménových jmen, domén, IP adres nebo jiných síťových CIDR, které se mají vyloučit z proxy. -
trustedCa: Řetězec obsahující alternativní obsah certifikátu CAbase64 encoded. Aktuálně je podporován pouze formátPEM.
Důležité
Pro zajištění kompatibility s komponentami založenými na Go, které jsou součástí systému Kubernetes, musí certifikát podporovat namísto zastaralých certifikátů "Common Name".
V aplikacích existují rozdíly v tom, jak plnit podmínky proměnné prostředí http_proxy, https_proxy a no_proxy. Curl a Python nepodporují CIDR v no_proxy, ale Ruby ano.
Příklad vstupu:
{
"httpProxy": "http://myproxy.server.com:8080/",
"httpsProxy": "https://myproxy.server.com:8080/",
"noProxy": [
"localhost",
"127.0.0.1"
],
"trustedCA": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUgvVENDQmVXZ0F3SUJB...S0tLS0="
}
Vytvoření clusteru s konfigurací proxy serveru HTTP pomocí Azure CLI
Během vytváření clusteru můžete nakonfigurovat cluster AKS s konfigurací proxy serveru HTTP.
az aks createPoužijte příkaz a předejte konfiguraci jako soubor JSON.az aks create \ --name $clusterName \ --resource-group $resourceGroup \ --http-proxy-config aks-proxy-config.json \ --generate-ssh-keysVáš cluster by měl být inicializován s konfigurací HTTP proxy na uzlech.
Ověřte, že konfigurace proxy serveru HTTP je na podech a uzlech. Zkontrolujte, jestli proměnné prostředí obsahují odpovídající hodnoty pro
http_proxy,https_proxyano_proxypomocíkubectl describe podpříkazu.kubectl describe {any pod} -n kube-systemPokud chcete ověřit, že jsou proxy proměnné nastaveny v podech, můžete zkontrolovat proměnné prostředí, které se nacházejí na uzlech.
kubectl get nodes kubectl node-shell {node name} cat /etc/environment
Aktualizace konfigurace proxy serveru HTTP
Konfigurace proxy serveru HTTP můžete aktualizovat v existujících clusterech, včetně následujících:
- Aktualizace existujícího clusteru za účelem povolení proxy serveru HTTP a přidání nové konfigurace proxy serveru HTTP
- Aktualizace existujícího clusteru za účelem změny konfigurace proxy serveru HTTP
Důležité informace o aktualizaci proxy serveru HTTP
Parametr --http-proxy-config by měl být nastaven na nový soubor JSON s aktualizovanými hodnotami pro httpProxy, httpsProxynoProxya trustedCa v případě potřeby. Aktualizace vkládá nové proměnné prostředí do kontejnerů s novými hodnotami httpProxy, httpsProxy nebo noProxy. Pody musí být restartovány, aby to aplikace zachytily, protože hodnoty proměnných prostředí jsou vloženy pomocí mutujícího přijímacího webhooku.
Poznámka
Pokud dochází k přepnutí na nový proxy server, nový proxy server musí již existovat, aby aktualizace byla úspěšná. Po dokončení upgradu můžete smazat starý proxy server.
Aktualizace clusteru pro aktualizaci nebo povolení proxy serveru HTTP
Pomocí příkazu povolte nebo aktualizujte konfigurace proxy serveru HTTP v existujícím clusteru
az aks update.Například řekněme, že jste vytvořili nový soubor se základním 64 kódovaným řetězcem nového certifikátu CA nazvaný aks-proxy-config-2.json. Můžete aktualizovat konfiguraci proxy ve vašem clusteru pomocí následujícího příkazu:
az aks update --name $clusterName --resource-group $resourceGroup --http-proxy-config aks-proxy-config-2.json
Upozornění
AKS automaticky znovu vytvoří všechny fondy uzlů v clusteru, když v něm provádíte aktualizaci konfigurace proxy serveru pomocí příkazu az aks update.
Rozpočty přerušení podů (PDB) můžete použít k ochraně kritických podů před narušením během přeinstalování.
Ověřte, že konfigurace proxy serveru HTTP je na podech a uzlech. Zkontrolujte, jestli proměnné prostředí obsahují odpovídající hodnoty pro
http_proxy,https_proxyano_proxypomocíkubectl describe podpříkazu.kubectl describe {any pod} -n kube-systemPokud chcete ověřit, že jsou proxy proměnné nastaveny v podech, můžete zkontrolovat proměnné prostředí, které se nacházejí na uzlech.
kubectl get nodes kubectl node-shell {node name} cat /etc/environment
Zakázání proxy serveru HTTP v existujícím clusteru (Preview)
Instalace aks-preview rozšíření
aks-previewNainstalujte rozšíření Azure CLI pomocíaz extension addpříkazu.Důležité
Funkce AKS ve verzi Preview jsou k dispozici na bázi samoobsluhy a dobrovolného přihlášení. Ukázky jsou poskytovány "jak jsou" a "podle aktuální dostupnosti" a jsou vyloučené ze smluv o úrovni služeb a omezené záruky. Předběžné verze AKS jsou částečně pokryty zákaznickou podporou podle možností. Proto tyto funkce nejsou určené pro produkční použití. Další informace najdete v následujících článcích podpory:
az extension add --name aks-previewPomocí příkazu aktualizujte na nejnovější verzi rozšíření
az extension update. Zakázání proxy serveru HTTP vyžaduje minimálně 18.0.0b13.az extension update --name aks-preview
Příznak registrace DisableHTTPProxyPreview funkce
Příznak funkce
DisableHTTPProxyPreviewzaregistrujte pomocí příkazuaz feature register.az feature register --namespace Microsoft.ContainerService --name DisableHTTPProxyPreviewPomocí příkazu ověřte stav
az feature showregistrace. Zobrazení stavu Zaregistrované trvá několik minut.az feature show --namespace Microsoft.ContainerService --name DisableHTTPProxyPreviewJakmile se stav projeví jako zaregistrovaný, aktualizujte registraci poskytovatele prostředků Microsoft.ContainerService pomocí
az provider registerpříkazu.az provider register --namespace Microsoft.ContainerService
Aktualizace clusteru pro zakázání proxy serveru HTTP (Preview)
Aktualizujte cluster a zakažte proxy server HTTP pomocí příkazu s příznakem
az aks update--disable-http-proxy.az aks update --name $clusterName --resource-group $resourceGroup --disable-http-proxy
Upozornění
AKS automaticky znovu vytvoří všechny fondy uzlů v clusteru, když v něm provádíte aktualizaci konfigurace proxy serveru pomocí příkazu az aks update.
Rozpočty přerušení podů (PDB) můžete použít k ochraně kritických podů před narušením během přeinstalování.
Ověřte, že je HTTP proxy zakázán tak, že zkontrolujete, zda konfigurace HTTP proxy není nastavená na podech a uzlech pomocí příkazu
kubectl describe pod.kubectl describe {any pod} -n kube-systemChcete-li ověřit, že proměnné proxy nejsou nastaveny na podech, můžete zkontrolovat proměnné prostředí, které jsou na uzlech.
kubectl get nodes kubectl node-shell {node name} cat /etc/environment
Opětovné povolení proxy serveru HTTP v existujícím clusteru
Při vytváření clusteru je ve výchozím nastavení povolený proxy server HTTP. Po zakázání proxy serveru HTTP v clusteru se konfigurace proxy serveru uloží do databáze, ale proměnné proxy serveru se z podů a uzlů odeberou.
Pokud chcete znovu povolit proxy server HTTP v existujícím clusteru, použijte az aks update příkaz s příznakem --enable-http-proxy .
az aks update --name $clusterName --resource-group $resourceGroup --enable-http-proxy
Upozornění
AKS automaticky znovu vytvoří všechny fondy uzlů v clusteru, když v něm provádíte aktualizaci konfigurace proxy serveru pomocí příkazu az aks update.
Rozpočty přerušení podů (PDB) můžete použít k ochraně kritických podů před narušením během přeinstalování.
Důležité
Pokud jste před zakázáním clusteru měli konfiguraci proxy serveru HTTP, použije se stávající konfigurace proxy serveru HTTP automaticky při opětovném povolení proxy serveru HTTP v daném clusteru. Než budete pokračovat, doporučujeme ověřit konfiguraci, abyste měli jistotu, že splňuje vaše aktuální požadavky. Pokud chcete po opětovném povolení proxy serveru HTTP změnit konfiguraci proxy serveru HTTP, postupujte podle pokynů k aktualizaci konfigurace proxy serveru HTTP v existujícím clusteru.
Konfigurace konfigurace proxy serveru HTTP pomocí šablony Azure Resource Manageru (ARM)
Můžete nasadit klastr AKS s HTTP proxy pomocí šablony ARM.
Zkontrolujte požadavky pro každý parametr:
-
httpProxy: Proxy URL, který se používá k vytváření HTTP připojení mimo cluster. Schéma URL musí býthttp. -
httpsProxy: Proxy URL k použití pro vytváření HTTPS připojení mimo clusteru. Pokud není uvedeno jinak, pak jehttpProxypoužit pro obě připojení HTTP a HTTPS. -
noProxy: Seznam cílových doménových jmen, domén, IP adres nebo jiných síťových CIDR, které se mají vyloučit z proxy. -
trustedCa: Řetězec obsahující alternativní obsah certifikátu CAbase64 encoded. Aktuálně je podporován pouze formátPEM.
Důležité
Pro zajištění kompatibility s komponentami založenými na Go, které jsou součástí systému Kubernetes, musí certifikát podporovat namísto zastaralých certifikátů "Common Name".
V aplikacích existují rozdíly v tom, jak plnit podmínky proměnné prostředí
http_proxy,https_proxyano_proxy. Curl a Python nepodporují CIDR vno_proxy, ale Ruby ano.-
Vytvořte šablonu s parametry proxy serveru HTTP. V šabloně zadejte hodnoty pro
httpProxy,httpsProxyanoProxy. V případě potřeby zadejte hodnotu protrustedCa. Stejné schéma použité pro nasazení CLI existuje v definici podMicrosoft.ContainerService/managedClustersv sekci"properties", jak ukazuje následující příklad:"properties": { ..., "httpProxyConfig": { "enabled": "true", "httpProxy": "string", "httpsProxy": "string", "noProxy": [ "string" ], "trustedCa": "string" } }Nasaďte šablonu ARM s konfigurací proxy serveru HTTP. Cluster by se měl inicializovat pomocí proxy serveru HTTP nakonfigurovaného na uzlech.
Aktualizace konfigurace proxy serveru HTTP
Konfigurace proxy serveru HTTP můžete aktualizovat v existujících clusterech, včetně následujících:
- Aktualizace existujícího clusteru za účelem povolení proxy serveru HTTP a přidání nové konfigurace proxy serveru HTTP
- Aktualizace existujícího clusteru za účelem změny konfigurace proxy serveru HTTP
Důležité informace o aktualizaci proxy serveru HTTP
Parametr --http-proxy-config by měl být nastaven na nový soubor JSON s aktualizovanými hodnotami pro httpProxy, httpsProxynoProxya trustedCa v případě potřeby. Aktualizace vkládá nové proměnné prostředí do kontejnerů s novými hodnotami httpProxy, httpsProxy nebo noProxy. Pody musí být restartovány, aby to aplikace zachytily, protože hodnoty proměnných prostředí jsou vloženy pomocí mutujícího přijímacího webhooku.
Poznámka
Pokud dochází k přepnutí na nový proxy server, nový proxy server musí již existovat, aby aktualizace byla úspěšná. Po dokončení upgradu můžete smazat starý proxy server.
Aktualizace šablony ARM pro konfiguraci proxy serveru HTTP
V šabloně zadejte nové hodnoty pro
httpProxy,httpsProxyanoProxy. V případě potřeby zadejte hodnotu protrustedCa.Stejné schéma použité pro nasazení CLI existuje v definici pod
Microsoft.ContainerService/managedClustersv sekci"properties", jak ukazuje následující příklad:"properties": { ..., "httpProxyConfig": { "enabled": "true", "httpProxy": "string", "httpsProxy": "string", "noProxy": [ "string" ], "trustedCa": "string" } }Nasaďte šablonu ARM s aktualizovanou konfigurací proxy serveru HTTP.
Upozornění
AKS automaticky znovu vytvoří všechny fondy uzlů v clusteru, když v něm provádíte aktualizaci konfigurace proxy serveru pomocí příkazu az aks update.
Rozpočty přerušení podů (PDB) můžete použít k ochraně kritických podů před narušením během přeinstalování.
Ověřte, že konfigurace proxy serveru HTTP je na podech a uzlech. Zkontrolujte, jestli proměnné prostředí obsahují odpovídající hodnoty pro
http_proxy,https_proxyano_proxypomocíkubectl describe podpříkazu.kubectl describe {any pod} -n kube-systemPokud chcete ověřit, že jsou proxy proměnné nastaveny v podech, můžete zkontrolovat proměnné prostředí, které se nacházejí na uzlech.
kubectl get nodes kubectl node-shell {node name} cat /etc/environment
Zakázání proxy serveru HTTP v existujícím clusteru pomocí šablony ARM (Preview)
Instalace aks-preview rozšíření
aks-previewNainstalujte rozšíření Azure CLI pomocíaz extension addpříkazu.Důležité
Funkce AKS ve verzi Preview jsou k dispozici na bázi samoobsluhy a dobrovolného přihlášení. Ukázky jsou poskytovány "jak jsou" a "podle aktuální dostupnosti" a jsou vyloučené ze smluv o úrovni služeb a omezené záruky. Předběžné verze AKS jsou částečně pokryty zákaznickou podporou podle možností. Proto tyto funkce nejsou určené pro produkční použití. Další informace najdete v následujících článcích podpory:
az extension add --name aks-previewPomocí příkazu aktualizujte na nejnovější verzi rozšíření
az extension update. Zakázání proxy serveru HTTP vyžaduje minimálně 18.0.0b13.az extension update --name aks-preview
Příznak registrace DisableHTTPProxyPreview funkce
Příznak funkce
DisableHTTPProxyPreviewzaregistrujte pomocí příkazuaz feature register.az feature register --namespace Microsoft.ContainerService --name DisableHTTPProxyPreviewPomocí příkazu ověřte stav
az feature showregistrace. Zobrazení stavu Zaregistrované trvá několik minut.az feature show --namespace Microsoft.ContainerService --name DisableHTTPProxyPreviewJakmile se stav projeví jako zaregistrovaný, aktualizujte registraci poskytovatele prostředků Microsoft.ContainerService pomocí
az provider registerpříkazu.az provider register --namespace Microsoft.ContainerService
Aktualizace clusteru pro zakázání proxy serveru HTTP
Aktualizujte šablonu ARM clusteru tak, aby zakázala proxy server HTTP nastavením
enablednafalse. Stejné schéma použité pro nasazení CLI existuje v definici podMicrosoft.ContainerService/managedClustersv sekci"properties", jak ukazuje následující příklad:"properties": { ..., "httpProxyConfig": { "enabled": "false", } }Nasaďte šablonu ARM se zakázaným proxy serverem HTTP.
Upozornění
AKS automaticky znovu vytvoří všechny fondy uzlů v clusteru, když v něm provádíte aktualizaci konfigurace proxy serveru pomocí příkazu az aks update.
Rozpočty přerušení podů (PDB) můžete použít k ochraně kritických podů před narušením během přeinstalování.
Ověřte, že proxy server HTTP je zakázaný ověřením, že konfigurace proxy serveru HTTP není nastavená na podech a uzlech pomocí
kubectl describe podpříkazu.kubectl describe {any pod} -n kube-systemChcete-li ověřit, že proměnné proxy nejsou nastaveny na podech, můžete zkontrolovat proměnné prostředí, které jsou na uzlech.
kubectl get nodes kubectl node-shell {node name} cat /etc/environment
Opětovné povolení proxy serveru HTTP v existujícím clusteru
Při vytváření clusteru je ve výchozím nastavení povolený proxy server HTTP. Jakmile v clusteru zakážete proxy server HTTP, už do daného clusteru nemůžete přidat konfigurace proxy serveru HTTP.
Pokud chcete znovu povolit proxy server HTTP, postupujte podle pokynů k aktualizaci konfigurace proxy serveru HTTP pomocí šablony ARM.
Doplněk Istio pro externí služby – proxy server HTTP
Pokud používáte doplněk Sítě služby Istio pro AKS, musíte vytvořit Service Entry, která umožní aplikacím v síti přístup k neclusterovým nebo externím prostředkům prostřednictvím proxy serveru HTTP.
Například:
apiVersion: networking.istio.io/v1
kind: ServiceEntry
metadata:
name: proxy
spec:
hosts:
- my-company-proxy.com # ignored
addresses:
- $PROXY_IP/32
ports:
- number: $PROXY_PORT
name: tcp
protocol: TCP
location: MESH_EXTERNAL
Vytvořte soubor a zadejte hodnoty pro
PROXY_IPaPROXY_PORT.Položku služby můžete nasadit pomocí:
kubectl apply -f service_proxy.yaml
Monitorování konfigurace doplňku
Proxy server HTTP s doplňkem pro monitorování podporuje následující konfigurace:
- Odchozí proxy bez autentizace
- Výstupní proxy s důvěryhodným certifikátem pro koncový bod Log Analytics
Následující konfigurace není podporovaná:
- Vlastní metriky a doporučená upozornění při použití proxy s důvěryhodnými certifikáty
Další kroky
Pro více informací o síťových požadavcích klastrů AKS, viz Řízení odchozího provozu pro uzly klastrů v AKS.
Azure Kubernetes Service