Megosztás a következőn keresztül:


HTTP proxy támogatás az Azure Kubernetes Szolgáltatásban (AKS)

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. With this feature, both AKS nodes and pods are configured to use the HTTP proxy. 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_PROXY
  • http_proxy
  • HTTPS_PROXY
  • https_proxy
  • NO_PROXY
  • no_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é

AKS klasztert konfigurálhat egy HTTP proxyval a klaszter létrehozása során a az aks create parancs használatával, és a konfigurációt egy JSON fájlként adhatja meg.

  1. 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 proxy URL to use for creating HTTP connections outside the cluster. Az URL séma http kell, hogy legyen.
  • httpsProxy: A proxy URL to use for creating HTTPS connections outside the cluster. Ha nincs meghatározva, akkor a httpProxy mind 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 az base64 encoded alternatív CA tanúsítvány tartalmát. Jelenleg csak a PEM formátum támogatott.

Important

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 Subject Alternative Names(SANs), 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...b3Rpbk15RGszaWFyCkYxMFlscWNPbWVYMXVGbUtiZGkvWG9yR2xrQ29NRjNURHg4cm1wOURCaUIvCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0="
}
  1. Hozzon létre egy fürtöt a az aks create paranccsal, amelynek --http-proxy-config paraméterét az Ön által létrehozott fájlra állította be.
az aks create \
    --name $clusterName \
    --resource-group $resourceGroup \
    --http-proxy-config aks-proxy-config.json \
    --generate-ssh-keys

Your cluster should initialize with the HTTP proxy configured on the nodes.

Fürt frissítése http-proxykonfiguráció engedélyezéséhez vagy frissítéséhez

Megjegyzés

Ha egy új proxyra vált, az új proxynak már léteznie kell ahhoz, hogy a frissítés sikeres legyen. After the upgrade is completed, you can delete the old proxy.

A HTTP-proxykonfiguráció a parancs használatával az aks update engedélyezhető vagy frissíthető egy meglévő fürtön. A --http-proxy-config paramétert egy új JSON-fájlra kell állítani, amely a , httpsProxy, noProxyés trustedCa szükség esetén frissített értékeket httpProxytartalmazza. A frissítés új környezeti változókat injektál a podokba az új httpProxy, httpsProxy, vagy noProxy értékekkel.

Figyelmeztetés

Az AKS automatikusan újra létrehozza 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.

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

Monitoring add-on configuration

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 felhasználónév és jelszó hitelesítéssel
  • Kimenő proxy megbízható tanúsítvánnyal a Log Analytics végpont számára

A következő konfigurációk nem támogatottak:

  • Custom Metrics and Recommended Alerts features when using a proxy with trusted certificates

Next steps

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.