Udostępnij przez


Konfigurowanie wejścia dla środowiska usługi Azure Container Apps

Usługa Azure Container Apps działa w kontekście środowiska z własną siecią wirtualną. Ta sieć wirtualna tworzy bezpieczną granicę wokół środowiska usługi Azure Container Apps.

Konfiguracja ruchu przychodzącego w usłudze Azure Container Apps określa, jak ruch sieciowy zewnętrzny dociera do aplikacji. Konfigurowanie ruchu przychodzącego umożliwia kontrolowanie routingu ruchu, poprawianie wydajności aplikacji i implementowanie zaawansowanych strategii wdrażania. W tym artykule przedstawiono opcje konfiguracji ruchu przychodzącego dostępne w usłudze Azure Container Apps i ułatwiają wybór odpowiednich ustawień dla obciążeń.

Środowisko usługi Azure Container Apps obejmuje skalowalny brzegowy serwer proxy dla ruchu przychodzącego odpowiedzialny za następujące funkcje:

Na poniższym diagramie przedstawiono przykładowe środowisko z serwerem proxy, który kieruje ruch do dwóch aplikacji kontenerowych.

Diagram przedstawiający sposób kierowania ruchu do aplikacji kontenerowych przez serwer proxy wejściowy.

Domyślnie usługa Azure Container Apps tworzy środowisko aplikacji kontenera z domyślnym trybem ruchu przychodzącego. Jeśli aplikacja musi działać na wysokim poziomie skalowania, możesz ustawić tryb przyjmowania ruchu na premium.

Domyślny tryb wejściowy

W domyślnym trybie ruchu przychodzącego środowisko usługi Container Apps ma dwa wystąpienia serwera proxy ruchu przychodzącego. Aplikacje kontenerowe tworzą więcej wystąpień w razie potrzeby, maksymalnie do 10. Każdemu wystąpieniu przydzielany jest 1 rdzeń wirtualnego procesora i 2 GB pamięci.

W domyślnym trybie wejścia nie są naliczane opłaty za skalowanie serwera proxy wejścia ani za rdzenie vCPU i przydzieloną pamięć.

Tryb Premium ruchu przychodzącego

Domyślny tryb ruchu przychodzącego może stać się wąskim gardłem w środowiskach o dużej skali. Alternatywnie tryb premium dla ruchu przychodzącego obejmuje zaawansowane funkcje, aby zapewnić, że ruch przychodzący sprosta wymaganiom dotyczącym ruchu.

Do tych funkcji należą:

  • Obsługa profilu obciążenia: Instancje serwera proxy Ingress są uruchamiane w wybranym profilu obciążenia. Masz kontrolę nad liczbą rdzeni procesorów wirtualnych i zasobami pamięci dostępnymi dla serwera proxy.

  • Konfigurowalne reguły zakresu skalowania: reguły zakresu skalowania serwera proxy można konfigurować, aby upewnić się, że masz tyle wystąpień, ile wymaga aplikacja.

  • Ustawienia zaawansowane: możesz skonfigurować zaawansowane ustawienia, takie jak czasy bezczynności dla instancji serwera proxy dla ruchu przychodzącego.

Aby zdecydować między trybem domyślnym a trybem premium dla ruchu przychodzącego, ocenisz zasoby zużywane przez wystąpienie serwera proxy, biorąc pod uwagę obsługiwane żądania. Zacznij od przyjrzenia się rdzeniom vCPU i zasobom pamięci zużywanym przez instancję serwera proxy. Jeśli środowisko utrzymuje maksymalną liczbę serwerów proxy (wartość domyślna 10) przez dłuższy okres, rozważ przełączenie do trybu Premium. Aby uzyskać więcej informacji, zobacz metryki. Aby dowiedzieć się, jak skonfigurować tryb premium dla ruchu przychodzącego, zobacz Używanie trybu premium dla ruchu przychodzącego w usłudze Azure Container Apps.

Profil obciążenia

Możesz wybrać profil obciążenia, aby udostępnić dedykowane węzły dla wystąpień proxy ruchu przychodzącego, które skalują się do Twoich potrzeb. Typy profilów obciążenia D4-D32 są zalecane. Każde wystąpienie serwera proxy ruchu przychodzącego ma przydzielony 1 rdzeń vCPU. Aby uzyskać więcej informacji, zobacz Profile obciążeń w usłudze Azure Container Apps.

Profil obciążenia:

  • Nie może być profilem obciążenia typu Zużycie.
  • Nie może być udostępniany aplikacjom kontenerowym ani zadaniom.
  • Nie można go usunąć podczas korzystania z serwera proxy dla ruchu przychodzącego.

Uruchamianie serwera proxy do ruchu przychodzącego w profilu obciążenia jest fakturowane według stawki dla tego profilu obciążenia. Aby uzyskać więcej informacji, zobacz rozliczenia.

Można również skonfigurować liczbę węzłów profilu obciążenia. Profil obciążenia to skalowalna pula węzłów. Każdy węzeł zawiera wiele wystąpień serwera proxy ingress. Liczba węzłów jest skalowana na podstawie procesorów wirtualnych i wykorzystania pamięci. Minimalna liczba wystąpień węzłów to dwa.

Skalowanie

Serwer proxy wejściowy jest skalowany niezależnie od skalowania aplikacji kontenera.

Gdy serwer proxy ruchu przychodzącego osiągnie wysokie wykorzystanie procesorów wirtualnych lub pamięci, usługa Container Apps tworzy więcej wystąpień serwera proxy ruchu przychodzącego. Po zmniejszeniu wykorzystania zostaną usunięte dodatkowe wystąpienia serwera proxy wejściowego.

Minimalne i maksymalne instancje serwera proxy dla ruchu przychodzącego są określane w następujący sposób:

  • Minimum: istnieją co najmniej dwa wystąpienia węzłów.

  • Maksymalna: maksymalna liczba wystąpień węzłów pomnożonych przez rdzenie procesorów wirtualnych. Jeśli na przykład masz 50 wystąpień węzłów i 4 rdzenie procesorów wirtualnych, masz maksymalnie 200 wystąpień serwera proxy ruchu przychodzącego.

Wystąpienia serwera proxy ruchu przychodzącego są rozmieszczone wśród dostępnych węzłów profilu obciążenia.

Zaawansowane ustawienia wejścia

Po włączeniu trybu premium ingress, można również skonfigurować następujące ustawienia:

Ustawienia Opis Minimalna wartość Maksimum Wartość domyślna
Okres prolongaty zakończenia Czas (w sekundach), jak długo aplikacja kontenerowa ma zakończyć przetwarzanie żądań przed ich anulowaniem podczas zamykania. 0 3600 500
Limit czasu oczekiwania na bezczynność żądania Limity czasu bezczynności żądania w minutach. 4 30 4
Liczba nagłówków żądania Zwiększ to ustawienie, jeśli masz klientów, którzy wysyłają dużą liczbę nagłówków żądań. 1 N/A 100

Należy zwiększać te ustawienia tylko w razie potrzeby, ponieważ ich podniesienie może prowadzić do sytuacji, w której instancje serwera proxy ruchu przychodzącego zużywają więcej zasobów przez dłuższy czas, przez co stają się bardziej narażone na wyczerpanie zasobów i ataki typu "odmowa usługi".

Konfiguracja wejścia

Po utworzeniu środowiska można skonfigurować konfigurację wejściową.

  1. Przejdź do swojego środowiska w portalu Azure.

  2. Wybierz pozycję Sieć.

  3. Wybierz Ustawienia ruchu.

  4. Skonfiguruj swoje ustawienia ingressu w następujący sposób.

    Ustawienia Wartość
    Tryb wejścia Wybierz pozycję Domyślne lub Premium.
    Rozmiar profilu obciążenia Wybierz rozmiar z D4 do D32.
    Minimalna liczba wystąpień węzłów Wprowadź minimalną liczbę wystąpień węzła profilu obciążenia.
    Maksymalna liczba wystąpień węzłów Wprowadź maksymalną liczbę wystąpień węzłów profilu obciążenia.
    Okres prolongaty zakończenia Wprowadź okres prolongaty zakończenia w minutach.
    Limit czasu oczekiwania na bezczynność żądania Wprowadź limit czasu bezczynności żądania w minutach.
    Liczba nagłówków żądania Wprowadź liczbę nagłówków żądania.
  5. Wybierz i zastosuj.

Routing oparty na regułach

W przypadku routingu opartego na regułach należy utworzyć w pełni kwalifikowaną nazwę domeny (FQDN) w środowisku aplikacji kontenera. Następnie używasz reguł, aby kierować żądania do tego FQDN do różnych aplikacji kontenerowych, w zależności od ścieżki, którą ma każde żądanie. Oferuje to następujące korzyści.

  • Izolacja: rozsyłając różne ścieżki do różnych aplikacji kontenerów, można wdrażać i aktualizować poszczególne składniki bez wpływu na całą aplikację.

  • Skalowalność: przy użyciu routingu opartego na regułach można skalować poszczególne aplikacje kontenerów niezależnie na podstawie ruchu odbieranego przez każdą aplikację kontenera.

  • Niestandardowe reguły routingu: możesz na przykład przekierować użytkowników do różnych wersji aplikacji lub zaimplementować testowanie A/B.

  • Zabezpieczenia: możesz zaimplementować środki zabezpieczeń dostosowane do każdej aplikacji kontenera. Pomaga to zmniejszyć obszar ataków aplikacji.

Aby dowiedzieć się, jak skonfigurować routing oparty na regułach w środowisku aplikacji kontenera, zobacz Używanie routingu opartego na regułach.

Szyfrowanie P2P w środowisku Azure Container Apps

Usługa Azure Container Apps obsługuje szyfrowanie TLS komunikacji peer-to-peer w środowisku. Włączenie tej funkcji powoduje szyfrowanie całego ruchu sieciowego w środowisku przy użyciu certyfikatu prywatnego, który jest ważny w zakresie środowiska usługi Azure Container Apps. Usługa Azure Container Apps automatycznie zarządza tymi certyfikatami.

Uwaga / Notatka

Domyślnie szyfrowanie równorzędne jest wyłączone. Włączenie szyfrowania równorzędnego dla aplikacji może zwiększyć opóźnienie odpowiedzi i zmniejszyć maksymalną przepływność w scenariuszach wysokiego obciążenia.

W poniższym przykładzie pokazano środowisko z włączonym szyfrowaniem równorzędnym. Diagram przedstawiający sposób szyfrowania/odszyfrowywania ruchu z włączonym szyfrowaniem równorzędnym.

1 Ruch przychodzący TLS jest zakończany na serwerze proxy przychodzącym na granicy środowiska.

2 Ruch sieciowy do i z serwera proxy wejściowego w środowisku jest szyfrowany przy użyciu certyfikatu prywatnego i odszyfrowany przez odbiornik.

3 Wywołania wykonywane z aplikacji A do FQDN aplikacji B są najpierw wysyłane do brzegowego serwera proxy wejścia i są szyfrowane przy użyciu TLS.

4 Wywołania wykonywane z aplikacji A do aplikacji B przy użyciu nazwy aplikacji B są wysyłane bezpośrednio do aplikacji B i są szyfrowane przy użyciu protokołu TLS. Wywołania między aplikacjami i komponentami Java są traktowane w taki sam sposób jak komunikacja pomiędzy aplikacjami i są szyfrowane za pomocą TLS.

Aplikacje w środowisku usługi Container Apps są automatycznie uwierzytelniane. Jednak środowisko uruchomieniowe usługi Container Apps nie obsługuje autoryzacji do kontroli dostępu między aplikacjami przy użyciu wbudowanego szyfrowania równorzędnego.

Gdy aplikacje komunikują się z klientem spoza środowiska, obsługiwane jest dwukierunkowe uwierzytelnianie za pomocą mTLS. Aby dowiedzieć się więcej, zobacz konfigurowanie certyfikatów klienta.

Szyfrowanie równorzędne można włączyć przy użyciu następujących poleceń.

Podczas tworzenia:

az containerapp env create \
    --name <ENVIRONMENT_NAME> \
    --resource-group <RESOURCE_GROUP> \
    --location <LOCATION> \
    --enable-peer-to-peer-encryption

W przypadku istniejącej aplikacji kontenera:

az containerapp env update \
    --name <ENVIRONMENT_NAME> \
    --resource-group <RESOURCE_GROUP> \
    --enable-peer-to-peer-encryption