Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Z tego artykułu dowiesz się, jak skonfigurować klastry usługi Azure Kubernetes Service (AKS) do korzystania z serwera proxy HTTP na potrzeby wychodzącego dostępu do Internetu.
Klastry AKS wdrożone w zarządzanych lub niestandardowych sieciach wirtualnych mają pewne zależności wychodzące, które są niezbędne do prawidłowego działania, co spowodowało problemy w środowiskach wymagających dostępu do Internetu do kierowania za pośrednictwem serwerów proxy HTTP. Węzły nie miały możliwości inicjowania konfiguracji, zmiennych środowiskowych i certyfikatów niezbędnych do uzyskania dostępu do usług internetowych.
Funkcja serwera proxy HTTP dodaje obsługę serwera proxy HTTP do klastrów usługi AKS, uwidaczniając prosty interfejs, którego można użyć do zabezpieczenia ruchu sieciowego wymaganego przez usługę AKS w środowiskach zależnych od serwera proxy. W przypadku tej funkcji zarówno węzły usługi AKS, jak i zasobniki są skonfigurowane do korzystania z serwera proxy HTTP. Ta funkcja umożliwia również instalację zaufanego urzędu certyfikacji na węzłach w ramach uruchamiania klastra. Bardziej złożone rozwiązania mogą wymagać utworzenia łańcucha zaufania w celu ustanowienia bezpiecznej komunikacji w sieci.
Ograniczenia i istotne zagadnienia
Następujące scenariusze nie są obsługiwane:
- Różne konfiguracje serwera proxy dla każdej puli węzłów
- Uwierzytelnianie użytkownika/hasła
- Niestandardowe urzędy certyfikacji (CA) na potrzeby komunikacji z serwerem interfejsu API
- Klastry AKS z pulami węzłów systemu Windows
- Pule węzłów korzystające z zestawów dostępności maszyn wirtualnych (VMAS)
- Używanie symbolu * jako symbolu wieloznacznego przyłączonego do sufiksu domeny dla noProxy.
httpProxy
, httpsProxy
i trustedCa
nie mają wartości domyślnie. Do zasobników wstrzykiwane są następujące zmienne środowiskowe:
HTTP_PROXY
http_proxy
HTTPS_PROXY
https_proxy
NO_PROXY
no_proxy
Aby wyłączyć iniekcję zmiennych środowiskowych serwera proxy, należy dodać adnotację do Pod za pomocą "kubernetes.azure.com/no-http-proxy-vars":"true"
.
Zanim rozpoczniesz
- Potrzebna jest najnowsza wersja interfejsu wiersza polecenia platformy Azure. Uruchom polecenie
az --version
, aby znaleźć wersję i uruchomić polecenieaz upgrade
, aby uaktualnić wersję. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure. - Sprawdź dostępne uaktualnienia klastra usługi AKS, aby upewnić się, że korzystasz z najnowszej wersji usługi AKS. Jeśli potrzebujesz przeprowadzić uaktualnienie, zobacz Uaktualnij klaster AKS.
- Konfigurowanie serwera proxy HTTP przy użyciu interfejsu wiersza polecenia platformy Azure
- Konfigurowanie serwera proxy HTTP przy użyciu szablonu usługi Azure Resource Manager (ARM)
- Istio Add-On serwer proxy HTTP dla usług zewnętrznych
Klaster usługi AKS można skonfigurować za pomocą serwera proxy HTTP podczas tworzenia klastra przy użyciu az aks create
polecenia i przekazać konfigurację jako plik JSON.
- Utwórz plik i podaj wartości dla
httpProxy
,httpsProxy
inoProxy
. Jeśli środowisko tego wymaga, podaj wartość dlatrustedCa
.
Schemat pliku konfiguracji wygląda następująco:
{
"httpProxy": "string",
"httpsProxy": "string",
"noProxy": [
"string"
],
"trustedCa": "string"
}
Przejrzyj wymagania dotyczące każdego parametru:
-
httpProxy
: adres URL serwera proxy używany do tworzenia połączeń HTTP poza klastrem. Schemat adresu URL musi mieć wartośćhttp
. -
httpsProxy
: adres URL serwera proxy używany do tworzenia połączeń HTTPS poza klastrem. Jeśli nie zostanie określony,httpProxy
jest używany zarówno dla połączeń HTTP, jak i HTTPS. -
noProxy
: lista docelowych nazw domen, domen, adresów IP lub innych reguł CIDR sieci do wykluczenia serwera proxy. -
trustedCa
: ciąg zawierający treść alternatywnego certyfikatu CAbase64 encoded
. Obecnie obsługiwany jest tylkoPEM
format.
Ważne
W celu zgodności ze składnikami opartymi na języku Go, które są częścią systemu Kubernetes, certyfikat musi obsługiwać format Subject Alternative Names(SANs)
zamiast przestarzałych certyfikatów Common Name.
Istnieją różnice w aplikacjach w zakresie zgodności ze zmienną środowiskową http_proxy
, https_proxy
i no_proxy
. Narzędzia Curl i Python nie obsługują CIDR w no_proxy
, ale Ruby tak.
Przykładowe dane wejściowe:
{
"httpProxy": "http://myproxy.server.com:8080/",
"httpsProxy": "https://myproxy.server.com:8080/",
"noProxy": [
"localhost",
"127.0.0.1"
],
"trustedCA": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUgvVENDQmVXZ0F3SUJB...b3Rpbk15RGszaWFyCkYxMFlscWNPbWVYMXVGbUtiZGkvWG9yR2xrQ29NRjNURHg4cm1wOURCaUIvCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0="
}
- Utwórz klaster przy użyciu
az aks create
polecenia z parametrem--http-proxy-config
ustawionym na utworzony plik.
az aks create \
--name $clusterName \
--resource-group $resourceGroup \
--http-proxy-config aks-proxy-config.json \
--generate-ssh-keys
Klaster powinien zostać zainicjowany przy użyciu serwera proxy HTTP skonfigurowanego w węzłach.
Aktualizowanie klastra w celu włączenia lub zaktualizowania konfiguracji serwera proxy http
Uwaga
W przypadku przełączenia na nowy serwer proxy nowy serwer proxy musi już istnieć, aby aktualizacja zakończyła się pomyślnie. Po zakończeniu uaktualniania można usunąć stary serwer proxy.
Konfigurację serwera proxy HTTP można włączyć lub zaktualizować w istniejącym klastrze przy użyciu az aks update
polecenia . Parametr --http-proxy-config
powinien być ustawiony na nowy plik JSON ze zaktualizowanymi wartościami dla httpProxy
, httpsProxy
, noProxy
i trustedCa
w razie potrzeby. Aktualizacja wprowadza nowe zmienne środowiskowe do zasobników z nowymi wartościami httpProxy
, httpsProxy
lub noProxy
.
Ostrożność
Usługa AKS automatycznie odtworzy wszystkie pule węzłów w klastrze po zaktualizowaniu konfiguracji serwera proxy w klastrze przy użyciu polecenia az aks update
. Można użyć budżetów zakłóceń zasobników (PDB), aby chronić krytyczne zasobniki przed zakłóceniami podczas ponownego obrazowania.
Załóżmy na przykład, że utworzono nowy plik z zakodowanym ciągiem base64 nowego certyfikatu urzędu certyfikacji o nazwie aks-proxy-config-2.json. Konfigurację serwera proxy w klastrze można zaktualizować za pomocą następującego polecenia:
az aks update --name $clusterName --resource-group $resourceGroup --http-proxy-config aks-proxy-config-2.json
Monitorowanie konfiguracji dodatku
Serwer proxy HTTP z dodatkiem monitorowania obsługuje następujące konfiguracje:
- Wychodzący serwer proxy bez uwierzytelniania
- Wychodzący serwer proxy z uwierzytelnianiem nazwy użytkownika i hasła
- Wychodzący serwer proxy z zaufanym certyfikatem dla punktu końcowego usługi Log Analytics
Następujące konfiguracje nie są obsługiwane:
- Metryki niestandardowe i zalecane funkcje alertów podczas korzystania z serwera proxy z zaufanymi certyfikatami
Następne kroki
Aby uzyskać więcej informacji na temat wymagań sieciowych klastrów usługi AKS, zobacz Kontrolowanie ruchu wychodzącego dla węzłów klastra w usłudze AKS.
Azure Kubernetes Service