HTTP-proxy támogatása az Azure Kubernetes Service-ben (AKS)
Ebből a cikkből megtudhatja, hogyan konfigurálhatja az Azure Kubernetes Service-fürtöket http-proxy használatára a kimenő internet-hozzáféréshez.
A felügyelt vagy egyéni virtuális hálózatokba telepített AKS-fürtök bizonyos kimenő függőségekkel rendelkeznek, amelyek a megfelelő működéshez szükségesek, ami problémákat okoz azokban a környezetekben, amelyekben az internet-hozzáférést HTTP-proxykon keresztül kell irányítani. A csomópontok nem tudta elindítani a konfigurációt, a környezeti változókat és az internetszolgáltatások eléréséhez szükséges tanúsítványokat.
A HTTP-proxy funkció HTTP-proxytámogatást biztosít az AKS-fürtökhöz, és egy egyszerű felületet biztosít, amellyel biztonságossá teheti az AKS-hez szükséges hálózati forgalmat proxyfü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 szolgáltatás lehetővé teszi egy megbízható hitelesítésszolgáltató telepítését a csomópontokra a fürt rendszerindításának részeként. Az összetettebb megoldásokhoz szükség lehet egy bizalmi lánc létrehozására a hálózaton keresztüli biztonságos kommunikáció létrehozásához.
Korlátozások és szempontok
A következő forgatókönyvek nem támogatottak:
- Csomópontkészletenként eltérő proxykonfigurációk
- Felhasználó-/jelszó-hitelesítés
- Egyéni hitelesítésszolgáltatók (CA-k) az API-kiszolgáló kommunikációja érdekében
- A meglévő AKS-fürtök HTTP-proxyval való konfigurálása nem támogatott; a HTTP-proxy funkciót engedélyezni kell a fürt létrehozásakor.
- AKS-fürtök Windows-csomópontkészletekkel
- Virtuálisgép-rendelkezésre állási csoportokat használó csomópontkészletek (VMAS)
- *használata helyettesítő karakterként a noProxy tartomány utótagjaként
httpProxy
, httpsProxy
és trustedCa
alapértelmezés szerint nincs értéke. A podokat a következő környezeti változókkal injektáljuk:
HTTP_PROXY
http_proxy
HTTPS_PROXY
https_proxy
NO_PROXY
no_proxy
A proxykörnyezet változóinak injektálásának letiltásához megjegyzést kell fűznie a podhoz a következővel "kubernetes.azure.com/no-http-proxy-vars":"true"
: .
Mielőtt elkezdené
- Szüksége van az Azure CLI legújabb verziójára. Futtassa
az --version
a verziót, és futtassaaz upgrade
a verzió frissítéséhez. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése. - Ellenőrizze az elérhető AKS-fürtfrissítéseket , hogy biztosan az AKS legújabb verzióját használja-e. Ha frissítenie kell, tekintse meg az AKS-fürt frissítését.
- A proxykonfiguráció frissítéséhez szükséges operációsrendszer-fájlok csak a csomópont lemezképének frissítése során frissíthetők. A proxy konfigurálása után frissítenie kell a csomópont lemezképét a módosítások alkalmazásához. További információ: AKS-csomópont lemezképeinek frissítése.
HTTP-proxy konfigurálása az Azure CLI használatával
Az AKS-fürtök http-proxyval konfigurálhatók a fürt létrehozása során a az aks create
parancs használatával, és JSON-fájlként adhatják át a konfigurációt.
A konfigurációs fájl sémája a következőképpen néz ki:
{
"httpProxy": "string",
"httpsProxy": "string",
"noProxy": [
"string"
],
"trustedCa": "string"
}
httpProxy
: A fürtön kívüli HTTP-kapcsolatok létrehozásához használható proxy URL-cím. Az URL-sémának meg kell lenniehttp
.httpsProxy
: A fürtön kívüli HTTPS-kapcsolatok létrehozásához használható proxy URL-cím. Ha nincs megadva, akkorhttpProxy
http- és HTTPS-kapcsolatokhoz is használható.noProxy
: A céltartománynevek, tartományok, IP-címek vagy egyéb hálózati CIDR-ek listája a proxyzás kizárásához.trustedCa
: Az alternatív hitelesítésszolgáltatói tanúsítványtartalmatbase64 encoded
tartalmazó sztring. Jelenleg csak aPEM
formátum támogatott.
Fontos
A Kubernetes-rendszer részét képező Go-alapú összetevőkkel való kompatibilitás érdekében a tanúsítványnak támogatnia Subject Alternative Names(SANs)
kell az elavult köznapi név tanúsítványai helyett.
Az alkalmazások között különbségek vannak a környezeti változó http_proxy
https_proxy
no_proxy
és a . A Curl és a Python nem támogatja a CIDR-t no_proxy
, de Ruby igen.
Példa bemenet:
Feljegyzés
A hitelesítésszolgáltatói tanúsítványnak a PEM formátumú tanúsítvány tartalmának base64 kódolású sztringjének kell lennie.
{
"httpProxy": "http://myproxy.server.com:8080/",
"httpsProxy": "https://myproxy.server.com:8080/",
"noProxy": [
"localhost",
"127.0.0.1"
],
"trustedCA": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUgvVENDQmVXZ0F3SUJB...b3Rpbk15RGszaWFyCkYxMFlscWNPbWVYMXVGbUtiZGkvWG9yR2xrQ29NRjNURHg4cm1wOURCaUIvCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0="
}
Hozzon létre egy fájlt, és adjon meg értékeket az httpProxy
, httpsProxy
és noProxy
. Ha a környezet megköveteli, adjon meg egy értéket a következőhöz trustedCa
: . Ezután üzembe helyezheti a fürtöt a az aks create
létrehozott fájlhoz beállított paraméterrel rendelkező --http-proxy-config
paranccsal. A fürtnek inicializálnia kell a csomópontokon konfigurált HTTP-proxyt.
az aks create \
--name $clusterName \
--resource-group $resourceGroup \
--http-proxy-config aks-proxy-config.json \
--generate-ssh-keys
HTTP-proxy konfigurálása Azure Resource Manager- (ARM-) sablonnal
AZ AKS-fürtöket EGY ARM-sablonnal http-proxyval helyezheti üzembe. A parancssori felület üzembe helyezéséhez használt séma a következő példában látható definícióban Microsoft.ContainerService/managedClusters
"properties"
található:
"properties": {
...,
"httpProxyConfig": {
"httpProxy": "string",
"httpsProxy": "string",
"noProxy": [
"string"
],
"trustedCa": "string"
}
}
A sablonban adjon meg értékeket a , httpsProxy
és noProxy
.httpProxy
Ha szükséges, adjon meg egy értéket a következőhöz trustedCa
: . Ezután üzembe helyezheti a sablont. A fürtnek inicializálnia kell a csomópontokon konfigurált HTTP-proxyt.
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 a HTTP-proxyn keresztül elérhessék a nem fürtözött vagy külső erőforrásokat. Példa:
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 és PROXY_IP
PROXY_PORT
. A szolgáltatásbejegyzés üzembe helyezéséhez használja a
kubectl apply -f service_proxy.yaml
Proxykonfiguráció frissítése
Feljegyzés
Ha ú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.
A fürt proxykonfigurációját úgy frissítheti, hogy a az aks update
parancs egy új JSON-fájlra van beállítva, és szükség esetén frissített értékeket noProxy
httpProxy
trustedCa
httpsProxy
tartalmaz.--http-proxy-config
A frissítés új környezeti változókat injektál a podokba az új httpProxy
, httpsProxy
vagy noProxy
értékekkel. A podokat el kell forgatni az alkalmazások számára, hogy felvegyék azt, mert a környezeti változó értékeit egy mutációs belépési webhook injektálja. A Kubernetes alatt lévő összetevők, például a tároló és maga a csomópont esetében ez csak akkor lép érvénybe, ha a csomópont lemezképének frissítése nem történik meg.
Tegyük fel például, hogy létrehozott egy új fájlt a aks-proxy-config-2.json nevű új hitelesítésszolgáltatói tanúsítvány base64 kódolású sztringjével. A fürt proxykonfigurációját az alábbi paranccsal frissítheti:
az aks update --name $clusterName --resource-group $resourceGroup --http-proxy-config aks-proxy-config-2.json
AKS-csomópont lemezképeinek frissítése
A proxy konfigurálása után frissítenie kell a csomópont lemezképét a módosítások alkalmazásához. A csomópont lemezképének frissítési folyamata az egyetlen módja a proxykonfiguráció frissítéséhez szükséges operációsrendszer-fájlok frissítésének. A csomópont lemezképének frissítési folyamata egy működés közbeni frissítés, amely frissíti az operációs rendszer lemezképét a csomópontkészlet minden csomópontján. Az AKS vezérlősíkja kezeli a frissítési folyamatot, amely nem teszi lehetővé az alkalmazások futtatását.
Az AKS-csomópont lemezképeinek frissítéséhez tekintse meg az Azure Kubernetes Service (AKS) csomópontrendszerképeinek frissítését.
A bővítmény konfigurációjának figyelése
A monitorozási bővítményrel rendelkező HTTP-proxy a következő konfigurációkat támogatja:
- Kimenő proxy hitelesítés nélkül
- Kimenő proxy felhasználónévvel és jelszó-hitelesítéssel
- Kimenő proxy megbízható tanúsítványokkal a Log Analytics-végponthoz
A következő konfigurációk nem támogatottak:
- 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
Az AKS-fürtök hálózati követelményeivel kapcsolatos további információkért lásd: A fürtcsomópontok kimenő forgalmának szabályozása az AKS-ben.
Azure Kubernetes Service