Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ebben a cikkben megtudhatja, hogyan kell konfigurálni az Azure Kubernetes Service (AKS) fürtöket úgy, hogy egy HTTP-proxyn keresztül férjenek hozzá a kifelé irányuló internetkapcsolathoz.
Az AKS fürtök, amelyeket menedzselt vagy egyéni virtuális hálózatokba telepítettek, bizonyos kimenő függőségekkel rendelkeznek, amelyek szükségesek a megfelelő működésükhöz. Ez problémákat okozott olyan környezetekben, ahol az internet-hozzáférést HTTP-proxikon keresztül kell irányítani. Az egységek nem tudták elindítani a konfigurációt, környezeti változókat és tanúsítványokat, amelyek szükségesek az internetes szolgáltatások eléréséhez.
Az HTTP proxy funkció HTTP proxy támogatást ad az AKS klaszterekhez, egy egyszerű felületet nyújtva, amelyet az AKS-hez szükséges hálózati forgalom védelmére használhat proxy-függő környezetekben. Ezzel a funkcióval az AKS-csomópontok és a podok is a HTTP-proxy használatára vannak konfigurálva. A funkció lehetővé teszi egy megbízható hitelesítő hatóság telepítését a csomópontokra egy klaszter bootstrappelése részeként. Összetettebb megoldások esetén szükség lehet egy bizalmi lánc létrehozására a hálózaton belüli biztonságos kommunikáció megteremtése érdekében.
Korlátok és megfontolások
A következő forgatókönyvek nem támogatottak:
- Különböző proxy konfigurációk node poolonként
- Felhasználónév/jelszó hitelesítés
- Egyedi tanúsítványhatóságok az API szerver kommunikációhoz
- AKS klaszterek Windows csomóponti csoportokkal
- Node poolok, amelyek Virtuális Gép rendelkezésre állási készleteket (VMAS) használnak
- A * használata helyettesítő karakterként egy domain végződéshez csatoltan a noProxy számára.
httpProxy, httpsProxy és trustedCa alapértelmezés szerint nincs értékük. A podokba a következő környezeti változókat injektálják be:
HTTP_PROXYhttp_proxyHTTPS_PROXYhttps_proxyNO_PROXYno_proxy
A proxy környezeti változók injektálásának letiltásához jelölnie kell a Podot "kubernetes.azure.com/no-http-proxy-vars":"true" használatával.
Mielőtt elkezdené
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: Az Azure Cloud Shell használatának első lépései.
Ha a CLI referencia parancsokat helyben szeretnéd futtatni, telepítsd az Azure CLI-t. Ha Windows vagy macOS rendszeren fut, fontolja meg az Azure CLI-t egy Docker-konténerben futtatni. További információkért lásd: Az Azure CLI használata Docker-konténerben.
Ha egy helyileg telepített verziót használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. Az azonosítási folyamat befejezéséhez kövesse a terminálján megjelenő lépéseket. További bejelentkezési lehetőségekért lásd: Hitelesítés az Azure-ba az Azure CLI használatával.
Amikor megjelenik a felszólítás, az első használatkor telepítse az Azure CLI bővítményt. További információ a bővítményekről: Bővítmények használata és kezelése az Azure CLI-vel.
Futtasd a az version parancsot, hogy megtudd a telepített verziót és függő könyvtárakat. A legújabb verzióra való frissítéshez futtassa a az upgrade parancsot.
Konfigurációs fájl létrehozása HTTP-proxyértékekkel
Hozzon létre egy fájlt, és adjon meg értékeket a httpProxy, httpsProxy, és noProxy számára. Ha a környezet megköveteli, adjon meg egy értéket a trustedCa számára.
A konfigurációs fájl sémája így néz ki:
{
"httpProxy": "string",
"httpsProxy": "string",
"noProxy": [
"string"
],
"trustedCa": "string"
}
Tekintse át az egyes paraméterek követelményeit:
-
httpProxy: A fürtön kívüli HTTP-kapcsolatok létrehozásához használható proxy URL-cím. Az URL sémahttpkell, hogy legyen. -
httpsProxy: A fürtön kívüli HTTPS-kapcsolatok létrehozásához használható proxy URL-cím. Ha nincs meghatározva, akkor ahttpProxymind HTTP, mind HTTPS kapcsolatokra használatos. -
noProxy: A cél domainnevek, domainek, IP-címek vagy egyéb hálózati CIDR-ek listája, amely kizárja a proxyzást. -
trustedCa: Egy karakterláncot, amely tartalmazza azbase64 encodedalternatív CA tanúsítvány tartalmát. Jelenleg csak aPEMformátum támogatott.
Fontos
A Kubernetes rendszer részét képező, Go-alapú komponensekkel való kompatibilitás érdekében a tanúsítványnak támogatnia kell a , a Common Name tanúsítványok helyett, amelyek elavultak.
Az alkalmazások között különbségek vannak abban, hogy miként felelnek meg a környezeti változóknak http_proxy, https_proxy, és no_proxy. A Curl és a Python nem támogatja a CIDR-t a no_proxy, de a Ruby igen.
Példa bemenet:
{
"httpProxy": "http://myproxy.server.com:8080",
"httpsProxy": "https://myproxy.server.com:8080",
"noProxy": [
"localhost",
"127.0.0.1"
],
"trustedCA": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUgvVENDQmVXZ0F3SUJB...S0tLS0="
}
HTTP-proxykonfigurációval rendelkező fürt létrehozása az Azure CLI használatával
Az AKS-fürtöket HTTP-proxykonfigurációval konfigurálhatja a fürt létrehozása során.
Használja a
az aks createparancsot, és adja át a konfigurációt JSON-fájlként.az aks create \ --name $clusterName \ --resource-group $resourceGroup \ --http-proxy-config aks-proxy-config.json \ --generate-ssh-keysA fürtnek inicializálnia kell a csomópontokon konfigurált HTTP-proxyt.
Ellenőrizze a HTTP-proxy konfigurációját a podokon és a csomópontokon, valamint azt, hogy a környezeti változók tartalmazzák a megfelelő
http_proxy,https_proxy, ésno_proxyértékeket akubectl describe podparancs használatával.kubectl describe {any pod} -n kube-systemA proxyváltozók podokban való beállításának ellenőrzéséhez ellenőrizheti a csomópontokon található környezeti változókat.
kubectl get nodes kubectl node-shell {node name} cat /etc/environment
HTTP-proxykonfiguráció frissítése
A HTTP-proxykonfigurációkat frissítheti meglévő fürtökön, például:
- Meglévő fürt frissítése HTTP-proxy engedélyezéséhez és új HTTP-proxykonfiguráció hozzáadásához.
- Meglévő fürt frissítése HTTP-proxykonfiguráció módosításához.
HTTP-proxyfrissítési szempontok
A --http-proxy-config paramétert egy új JSON-fájlra kell állítani, amely a , httpProxy, httpsProxyés noProxy szükség esetén frissített értékeket trustedCatartalmazza. A frissítés új környezeti változókat injektál a podokba az új httpProxy, httpsProxy, vagy noProxy értékekkel. A podokat újra kell indítani az alkalmazások számára, hogy azokat felvegyék, mert a környezeti változó értékeket egy mutálást végző belépési webhook injektálja.
Megjegyzés
Ha egy új proxyra vált, az új proxynak már léteznie kell ahhoz, hogy a frissítés sikeres legyen. A frissítés befejezése után törölheti a régi proxyt.
Egy fürt frissítése a HTTP-proxy frissítéséhez vagy engedélyezéséhez
Http-proxykonfigurációk engedélyezése vagy frissítése meglévő fürtön a
az aks updateparancs használatával.Tegyük fel például, hogy létrehozott egy új fájlt az új CA tanúsítvány base64-kódolt karakterláncával, amelynek a neve aks-proxy-config-2.json. Frissítheti a proxy konfigurációját a fürtön a következő parancs segítségével:
az aks update --name $clusterName --resource-group $resourceGroup --http-proxy-config aks-proxy-config-2.json
Figyelmeztetés
Az AKS automatikusan újrakonfigurálja a fürt összes csomópontkészletét, amikor a parancs használatával az aks update frissíti a fürt proxykonfigurációját.
A podkimaradási költségvetések (PDB-k) használatával megvédheti a kritikus podok megszakadását az újraimálás során.
Ellenőrizze a HTTP-proxy konfigurációját a podokon és a csomópontokon, valamint azt, hogy a környezeti változók tartalmazzák a megfelelő
http_proxy,https_proxy, ésno_proxyértékeket akubectl describe podparancs használatával.kubectl describe {any pod} -n kube-systemA proxyváltozók podokban való beállításának ellenőrzéséhez ellenőrizheti a csomópontokon található környezeti változókat.
kubectl get nodes kubectl node-shell {node name} cat /etc/environment
HTTP-proxy letiltása meglévő klaszteren előzetes verzió
Bővítmény telepítése aks-preview
Telepítse az
aks-previewAzure CLI-bővítményt aaz extension addparanccsal.Fontos
Az AKS előzetes verziójú funkciói önkiszolgáló, opt-in alapon érhetők el. Az előzetes verziókat "ahogy van" és "rendelkezésre állóként" biztosítjuk, és a szolgáltatási szerződésekből és a korlátozott jótállásból kizárjuk őket. Az AKS előzetes verzióihoz részleges támogatást nyújt az ügyfélszolgálat a tőle telhető legjobb módon. Ezért ezek a funkciók nem éles használatra vannak szánva. További információkért tekintse meg az alábbi támogatási cikkeket:
az extension add --name aks-previewFrissítsen a bővítmény legújabb verziójára a
az extension updateparanccsal. A HTTP-proxy letiltásához legalább 18.0.0b13 szükséges.az extension update --name aks-preview
Funkciójelző regisztrálása DisableHTTPProxyPreview
Regisztrálja a
DisableHTTPProxyPreviewfunkciójelzőt aaz feature registerparanccsal.az feature register --namespace Microsoft.ContainerService --name DisableHTTPProxyPreviewEllenőrizze a regisztrációs állapotot a
az feature showparanccsal. Néhány percig tart, amíg az állapot megjelenik a Regisztrált állapotban.az feature show --namespace Microsoft.ContainerService --name DisableHTTPProxyPreviewHa az állapot a Regisztrált állapotot tükrözi, frissítse a Microsoft.ContainerService erőforrás-szolgáltató regisztrációját a
az provider registerparanccsal.az provider register --namespace Microsoft.ContainerService
Klaszter frissítése a HTTP-proxy kikapcsolásához (előzetes verzió)
Frissítse a fürtöt azzal, hogy letiltja a HTTP-proxyt a
az aks updateparancs és a--disable-http-proxyjelölő használatával.az aks update --name $clusterName --resource-group $resourceGroup --disable-http-proxy
Figyelmeztetés
Az AKS automatikusan újrakonfigurálja a fürt összes csomópontkészletét, amikor a parancs használatával az aks update frissíti a fürt proxykonfigurációját.
A podkimaradási költségvetések (PDB-k) használatával megvédheti a kritikus podok megszakadását az újraimálás során.
Ellenőrizze, hogy a HTTP-proxy le van-e tiltva, ha ellenőrzi, hogy a HTTP-proxykonfiguráció nincs-e beállítva a podokon és csomópontokon a
kubectl describe podparancs használatával.kubectl describe {any pod} -n kube-systemHa ellenőrizni szeretné, hogy a proxyváltozók nincsenek-e podokban beállítva, ellenőrizheti a csomópontokon található környezeti változókat.
kubectl get nodes kubectl node-shell {node name} cat /etc/environment
HTTP proxy újbóli engedélyezése meglévő fürtben
Fürt létrehozásakor a HTTP-proxy alapértelmezés szerint engedélyezve van. Ha letiltja a HTTP-proxyt egy fürtben, a proxykonfiguráció az adatbázisban lesz mentve, de a proxyváltozók el lesznek távolítva a podokból és csomópontokból.
Ha újra engedélyezni szeretné a HTTP-proxyt egy meglévő fürtön, használja a az aks update jelölőt tartalmazó --enable-http-proxy parancsot.
az aks update --name $clusterName --resource-group $resourceGroup --enable-http-proxy
Figyelmeztetés
Az AKS automatikusan újrakonfigurálja a fürt összes csomópontkészletét, amikor a parancs használatával az aks update frissíti a fürt proxykonfigurációját.
A podkimaradási költségvetések (PDB-k) használatával megvédheti a kritikus podok megszakadását az újraimálás során.
Fontos
Ha a letiltás előtt HTTP-proxykonfigurációja volt a fürtön, a meglévő HTTP-proxykonfiguráció automatikusan érvényes, amikor újra engedélyezi a HTTP-proxyt a fürtön. Javasoljuk, hogy a folytatás előtt ellenőrizze a konfigurációt, hogy megfeleljen a jelenlegi követelményeknek. Ha a HTTP-proxy újbóli engedélyezése után módosítani szeretné a HTTP-proxy konfigurációját, kövesse a meglévő fürt HTTP-proxykonfigurációjának frissítéséhez szükséges lépéseket.
HTTP-proxykonfiguráció konfigurálása Azure Resource Manager-sablonnal
AKS fürtöt telepíthet egy HTTP proxyval az ARM sablon használatával.
Tekintse át az egyes paraméterek követelményeit:
-
httpProxy: A fürtön kívüli HTTP-kapcsolatok létrehozásához használható proxy URL-cím. Az URL sémahttpkell, hogy legyen. -
httpsProxy: A fürtön kívüli HTTPS-kapcsolatok létrehozásához használható proxy URL-cím. Ha nincs meghatározva, akkor ahttpProxymind HTTP, mind HTTPS kapcsolatokra használatos. -
noProxy: A cél domainnevek, domainek, IP-címek vagy egyéb hálózati CIDR-ek listája, amely kizárja a proxyzást. -
trustedCa: Egy karakterláncot, amely tartalmazza azbase64 encodedalternatív CA tanúsítvány tartalmát. Jelenleg csak aPEMformátum támogatott.
Fontos
A Kubernetes rendszer részét képező, Go-alapú komponensekkel való kompatibilitás érdekében a tanúsítványnak támogatnia kell a , a Common Name tanúsítványok helyett, amelyek elavultak.
Az alkalmazások között különbségek vannak abban, hogy miként felelnek meg a környezeti változóknak
http_proxy,https_proxy, ésno_proxy. A Curl és a Python nem támogatja a CIDR-t ano_proxy, de a Ruby igen.-
Sablon létrehozása HTTP-proxyparaméterekkel. A sablonjában adja meg a
httpProxy,httpsProxyésnoProxyértékeit. Szükség esetén adjon meg egy értéket atrustedCaszámára. Ugyanazt a sémát használják a CLI telepítésekor, és ez azMicrosoft.ContainerService/managedClustersdefinícióban található a"properties"alatt, ahogyan az az alábbi példában is látható:"properties": { ..., "httpProxyConfig": { "enabled": "true", "httpProxy": "string", "httpsProxy": "string", "noProxy": [ "string" ], "trustedCa": "string" } }Telepítse az ARM-sablont a HTTP-proxy konfigurációjával. A fürtnek úgy kell inicializálódnia, hogy a HTTP proxy konfigurálva legyen a csomópontokon.
HTTP-proxykonfiguráció frissítése
A HTTP-proxykonfigurációkat frissítheti meglévő fürtökön, például:
- Meglévő fürt frissítése HTTP-proxy engedélyezéséhez és új HTTP-proxykonfiguráció hozzáadásához.
- Meglévő fürt frissítése HTTP-proxykonfiguráció módosításához.
HTTP-proxyfrissítési szempontok
A --http-proxy-config paramétert egy új JSON-fájlra kell állítani, amely a , httpProxy, httpsProxyés noProxy szükség esetén frissített értékeket trustedCatartalmazza. A frissítés új környezeti változókat injektál a podokba az új httpProxy, httpsProxy, vagy noProxy értékekkel. A podokat újra kell indítani az alkalmazások számára, hogy azokat felvegyék, mert a környezeti változó értékeket egy mutálást végző belépési webhook injektálja.
Megjegyzés
Ha egy új proxyra vált, az új proxynak már léteznie kell ahhoz, hogy a frissítés sikeres legyen. A frissítés befejezése után törölheti a régi proxyt.
ARM-sablon frissítése HTTP-proxy konfigurálásához
A sablonban biztosítson új értékeket a
httpProxy,httpsProxyésnoProxyszámára. Szükség esetén adjon meg egy értéket atrustedCaszámára.Ugyanazt a sémát használják a CLI telepítésekor, és ez az
Microsoft.ContainerService/managedClustersdefinícióban található a"properties"alatt, ahogyan az az alábbi példában is látható:"properties": { ..., "httpProxyConfig": { "enabled": "true", "httpProxy": "string", "httpsProxy": "string", "noProxy": [ "string" ], "trustedCa": "string" } }Telepítse az ARM-sablont a frissített HTTP-proxykonfigurációval.
Figyelmeztetés
Az AKS automatikusan újrakonfigurálja a fürt összes csomópontkészletét, amikor a parancs használatával az aks update frissíti a fürt proxykonfigurációját.
A podkimaradási költségvetések (PDB-k) használatával megvédheti a kritikus podok megszakadását az újraimálás során.
Ellenőrizze a HTTP-proxy konfigurációját a podokon és a csomópontokon, valamint azt, hogy a környezeti változók tartalmazzák a megfelelő
http_proxy,https_proxy, ésno_proxyértékeket akubectl describe podparancs használatával.kubectl describe {any pod} -n kube-systemA proxyváltozók podokban való beállításának ellenőrzéséhez ellenőrizheti a csomópontokon található környezeti változókat.
kubectl get nodes kubectl node-shell {node name} cat /etc/environment
HTTP proxy letiltása egy meglévő fürtön ARM-sablon használatával (előzetes verzió)
Bővítmény telepítése aks-preview
Telepítse az
aks-previewAzure CLI-bővítményt aaz extension addparanccsal.Fontos
Az AKS előzetes verziójú funkciói önkiszolgáló, opt-in alapon érhetők el. Az előzetes verziókat "ahogy van" és "rendelkezésre állóként" biztosítjuk, és a szolgáltatási szerződésekből és a korlátozott jótállásból kizárjuk őket. Az AKS előzetes verzióihoz részleges támogatást nyújt az ügyfélszolgálat a tőle telhető legjobb módon. Ezért ezek a funkciók nem éles használatra vannak szánva. További információkért tekintse meg az alábbi támogatási cikkeket:
az extension add --name aks-previewFrissítsen a bővítmény legújabb verziójára a
az extension updateparanccsal. A HTTP-proxy letiltásához legalább 18.0.0b13 szükséges.az extension update --name aks-preview
Funkciójelző regisztrálása DisableHTTPProxyPreview
Regisztrálja a
DisableHTTPProxyPreviewfunkciójelzőt aaz feature registerparanccsal.az feature register --namespace Microsoft.ContainerService --name DisableHTTPProxyPreviewEllenőrizze a regisztrációs állapotot a
az feature showparanccsal. Néhány percig tart, amíg az állapot megjelenik a Regisztrált állapotban.az feature show --namespace Microsoft.ContainerService --name DisableHTTPProxyPreviewHa az állapot a Regisztrált állapotot tükrözi, frissítse a Microsoft.ContainerService erőforrás-szolgáltató regisztrációját a
az provider registerparanccsal.az provider register --namespace Microsoft.ContainerService
Klaszter frissítése a HTTP-proxy letiltására
Frissítse a fürt ARM-sablonját, hogy letiltsa a HTTP-proxyt, a következő beállítással:
enabledfalse. Ugyanazt a sémát használják a CLI telepítésekor, és ez azMicrosoft.ContainerService/managedClustersdefinícióban található a"properties"alatt, ahogyan az az alábbi példában is látható:"properties": { ..., "httpProxyConfig": { "enabled": "false", } }Az ARM-sablon üzembe helyezése letiltott HTTP-proxyval.
Figyelmeztetés
Az AKS automatikusan újrakonfigurálja a fürt összes csomópontkészletét, amikor a parancs használatával az aks update frissíti a fürt proxykonfigurációját.
A podkimaradási költségvetések (PDB-k) használatával megvédheti a kritikus podok megszakadását az újraimálás során.
Ellenőrizze, hogy a HTTP-proxy le van-e tiltva, ha ellenőrzi, hogy a HTTP-proxy konfigurációja nincs-e beállítva a podokon és csomópontokon a
kubectl describe podparancs használatával.kubectl describe {any pod} -n kube-systemHa ellenőrizni szeretné, hogy a proxyváltozók nincsenek-e podokban beállítva, ellenőrizheti a csomópontokon található környezeti változókat.
kubectl get nodes kubectl node-shell {node name} cat /etc/environment
HTTP proxy újbóli engedélyezése meglévő fürtben
Fürt létrehozásakor a HTTP-proxy alapértelmezés szerint engedélyezve van. Ha letiltja a HTTP-proxyt egy fürtön, többé nem adhat hozzá HTTP-proxykonfigurációkat a fürthöz.
Ha újra engedélyezni szeretné a HTTP-proxyt, kövesse a HTTP-proxykonfiguráció ARM-sablonnal történő frissítéséhez szükséges lépéseket.
Istio bővítmény HTTP-proxy külső szolgáltatásokhoz
Ha az Istio-alapú service mesh bővítményt használja az AKS-hez, létre kell hoznia egy szolgáltatásbejegyzést, amely lehetővé teszi a hálóban lévő alkalmazások számára, hogy http-proxyn keresztül elérhessék a nemcluster vagy külső erőforrásokat.
Például:
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
Hozzon létre egy fájlt, és adjon meg értékeket a
PROXY_IPésPROXY_PORTszámára.A szolgáltatásbejegyzés üzembe helyezéséhez használja a következőt:
kubectl apply -f service_proxy.yaml
A bővítmény konfigurációjának figyelése
A megfigyelési bővítménnyel ellátott HTTP proxy a következő konfigurációkat támogatja:
- Kimenő proxy hitelesítés nélkül
- Kimenő proxy megbízható tanúsítvánnyal a Log Analytics végpont számára
A következő konfiguráció nem támogatott:
- Egyéni metrikák és ajánlott riasztások funkciók megbízható tanúsítványokkal rendelkező proxyk használatakor
Következő lépések
További információért az AKS klaszterek hálózati követelményeivel kapcsolatban, lásd A klasztercsomópontok kiáramló forgalmának vezérlése AKS-ben.