Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebből a cikkből megtudhatja, hogyan konfigurálhatja Azure Kubernetes Service (AKS) fürtöket HTTP-proxy használatára a kimenő internet-hozzáféréshez.
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
- Legfeljebb 20 megbízható hitelesítésszolgáltatói tanúsítvány adható meg
- AKS-fürtök Windows csomópontkészletekkel
- 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.
- a noProxy-gazdagépeknek RFC 1123-kompatibilisnek kell lenniük
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 a Azure Cloud Shell. További információért tekintse meg az Azure Cloud Shell használatának megkezdését.
Ha helyileg szeretné futtatni a CLI-referenciaparancsokat, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszeren fut, érdemes lehet Azure CLI egy Docker-tárolóban futtatni. További információ: A Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be a az login paranccsal. 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: Az Azure CLI használatával hitelesítés az Azure-hoz.
Amikor a rendszer kéri, először telepítse a 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.
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.
- A HTTP-proxy letiltásához a cli minimális 2.85.0-s verziójára van szükség.
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. 20 tanúsítvány korlátja.
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. Curl és Python nem támogatják a CIDR-t no_proxy, de 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 segítségével
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
Klaszter frissítése a HTTP-proxy letiltására
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 (ARM) 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. Curl és Python nem támogatják a CIDR-tno_proxy, de 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. A parancssori felület üzembe helyezéséhez használt séma aMicrosoft.ContainerService/managedClustersalatt található"properties"definícióban található, ahogyan 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.A parancssori felület üzembe helyezéséhez használt séma a
Microsoft.ContainerService/managedClustersalatt található"properties"definícióban található, ahogyan 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 meglévő kiszolgálófürtön ARM sablon használatával
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. A parancssori felület üzembe helyezéséhez használt séma aMicrosoft.ContainerService/managedClustersalatt található"properties"definícióban található, ahogyan 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ányokkal Log Analytics végponthoz
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.