Share via


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
  • Windows-alapú fürtök
  • 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 futtassa az 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 lennie http.
  • httpsProxy: A fürtön kívüli HTTPS-kapcsolatok létrehozásához használható proxy URL-cím. Ha nincs megadva, akkor httpProxy 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ánytartalmat base64 encoded tartalmazó sztring. Jelenleg csak a PEM 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_proxyhttps_proxyno_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

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.

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 noProxyhttpProxytrustedCahttpsProxytartalmaz.--http-proxy-config A frissítés új környezeti változókat injektál a podokba az új httpProxy, httpsProxyvagy 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.