Usługa Azure Container Apps w usłudze Azure Arc

Azure Container Apps w środowisku Kubernetes z obsługą usługi Azure Arc umożliwiają uruchamianie obciążeń usługi Container Apps w obsługiwanej infrastrukturze Kubernetes poza centrami danych platformy Azure, w tym usługi AKS w Azure lokalnie. Zarządzasz aplikacjami jako zasobami Azure, podczas gdy kontenery aplikacji i data plan Container Apps działają na klastrze Kubernetes.

Uruchamianie aplikacji kontenerowych na Azure Arc może Ci pomóc:

  • Uruchamiaj aplikacje blisko użytkowników, urządzeń lub lokalnych źródeł danych, aby zmniejszyć opóźnienia.
  • Utrzymuj przetwarzanie aplikacji w miejscu, które wspiera rezydencję danych, suwerenność lub wymagania zgodności Twojej organizacji.
  • Daj zespołom aplikacyjnym model aplikacji Container Apps, podczas gdy zespoły infrastrukturalne zachowują kontrolę nad klastrem Kubernetes, siecią, pamięcią masową, pojemnością i cyklem życia.
  • Zarządzaj aplikacjami w obsługiwanych lokalizacjach za pomocą Azure Resource Manager, Azure CLI oraz portalu Azure.
  • Korzystaj z obsługiwanych funkcji aplikacji kontenerowych, takich jak wersje, wejście, autoskalowanie, Dapr, zadania, metryki, streaming logów, domeny niestandardowe oraz dostęp do konsoli aplikacji.

Container Apps on Azure Arc to nie jest hostowana usługa obliczeniowa. Twoja organizacja dostarcza, zabezpiecza, skaluje, łata i obsługuje bazowy klaster Kubernetes oraz jego zasoby obliczeniowe, sieciowe i magazynowe.

Aby przygotować klaster i wdrożyć swoją pierwszą aplikację, ukończ Skonfiguruj klaster Kubernetes z funkcją Azure Arc, aby uruchomić Azure Container Apps, a następnie wyrób Stwórz aplikację kontenerową w Azure Arc.

Podczas konfiguracji klastra tworzysz lub używasz następujących zasobów:

  • Połączony klaster: Reprezentacja klastra Kubernetes w usłudze Azure Resource Manager. Agenci Azure Arc działający w klastrze utrzymują połączenie z Azure. Aby uzyskać więcej informacji, zobacz Co to jest platforma Kubernetes z obsługą usługi Azure Arc?

  • Rozszerzenie klastra Container Apps: Oprogramowanie zainstalowane w klastrze, które zapewnia kontrolery Container Apps, wejście, skalowanie, Dapr, logowanie i inne komponenty płaszczyzny danych. Rozszerzenie jest zasobem podrzędnym połączonego klastra.

  • Lokalizacja niestandardowa: Zasób lokalizacji Azure, który łączy połączony klaster, rozszerzenie Container Apps oraz przestrzeń nazw Kubernetes, gdzie tworzone są zasoby Container Apps.

  • Środowisko połączone z aplikacjami kontenerowymi: Granica aplikacji, na którą deweloperzy wdrażają aplikacje kontenerowe i zlecenia. Połączone środowisko odnosi się do lokalizacji niestandardowej i zawiera konfigurację współdzieloną przez aplikacje.

Kolejność zależności to: połączony klaster > , rozszerzenie > klastra, niestandardowa lokalizacja > , połączone środowisko > , kontener lub zadanie. Jeśli wcześniejszy zasób jest niezdrowy, zasoby później w łańcuchu mogą nie zostać dostarczone.

Ograniczenia

Poniższe ograniczenia dotyczą Azure Container Apps na Kubernetes obsługującym Azure Arc.

Ograniczenie Szczegóły
Obsługiwane regiony platformy Azure Australia Wschodnia, Azja Wschodnia, Wschodnia USA, Północno-Środkowa USA, Azja Południowo-Wschodnia, Szwecja Centralna, Wielka Brytania Południe, Europa Zachodnia, Zachodnia USA
Wymaganie dotyczące sieci klastra Musi obsługiwać typ usługi LoadBalancer
Wymaganie dotyczące systemu operacyjnego Node Tylko system Linux .
Funkcja: tożsamości zarządzane Niedostępne
Funkcja: ściąganie obrazów z usługi ACR przy użyciu tożsamości zarządzanej Niedostępne (zależy od tożsamości zarządzanych)
Funkcja: Azure Files Sterownik SMB (>= v1.18.0) powinien być zainstalowany przed użyciem pamięci SMB w Azure Files
Dzienniki Należy skonfigurować usługę Log Analytics z rozszerzeniem klastra, a nie dla każdej aplikacji osobno.

Obsługiwane są następujące funkcje:

  • Etykiety
  • Wskaźniki
  • Łatwe uwierzytelnianie
  • Strumień logu
  • Odporność
  • Domeny niestandardowe
  • Zadania usługi Container Apps
  • Zarządzanie poprawkami
  • Konsola kontenera aplikacji

Ważne

Zanim zainstalujesz rozszerzenie na AKS w Azure lokalnie, skonfiguruj HAProxy lub inny obsługiwany load balancer i skonfiguruj niestandardowy CoreDNS. Aby skonfigurować CoreDNS for AKS na Azure lokalnie, uruchom az containerapp arc setup-core-dns --distro AksAzureLocal. Opcje poleceń można znaleźć w az containerapp arc.

Zasoby utworzone przez rozszerzenie Container Apps

Po zainstalowaniu rozszerzenia Container Apps w klastrze Kubernetes obsługującym Azure Arc, kilka zasobów jest tworzonych w określonej przestrzeni nazw dla wydania. Te zasoby umożliwiają klastrowi rozszerzenie Microsoft.App dostawcy zasobów, obsługując zarządzanie i działanie aplikacji.

Rozszerzenie może instalować komponenty KEDA używane do skalowania sterowanego zdarzeniami i skalowania HTTP. W klastrze może działać tylko jedna obsługiwana instalacja KEDA. Przed instalacją uruchom kubectl get deployment -A | grep -i keda, aby sprawdzić, czy istnieje już instalacja. Jeśli KEDA już istnieje, zatrzymaj się i potwierdź obsługiwaną konfigurację współistnienia przed kontynuacją. Nie usuwaj istniejącej instalacji KEDA ani nie stosuj ustawień nieudokumentowanych rozszerzeń, bo inne obciążenia mogą od tego zależeć.

Poniższa tabela opisuje rolę każdego komponentu rozszerzenia stworzonego dla Ciebie:

Strączek opis Liczba wystąpień CPU Pamięć Typ
<extensionName>-k8se-activator Używany jako część procesu skalowania 2 100 milicpu 500 MB Zestaw replik
<extensionName>-k8se-billing Generowanie rekordów rozliczeniowych 3 100 milicpu 100 MB Zestaw replik
<extensionName>-k8se-containerapp-controller Zasobnik operatora podstawowego, który tworzy zasoby w klastrze i utrzymuje stan składników. 2 100 milicpu 1 GB Zestaw replik
<extensionName>-k8se-envoy Warstwa proxy front-endowa dla wszystkich żądań HTTP warstwy danych. Kieruje ruch przychodzący do odpowiednich aplikacji. 3 1 rdzeń 1536 MB Zestaw replik
<extensionName>-k8se-envoy-controller Operator, który generuje konfigurację aplikacji Envoy 2 200 milicpu 500 MB Zestaw replik
<extensionName>-k8se-event-processor Alternatywna lokalizacja docelowa routingu, która ułatwia aplikacjom skalowanym do zera, podczas gdy system pobiera pierwsze dostępne wystąpienie. 2 100 milicpu 500 MB Zestaw replik
<extensionName>-k8se-http-scaler Monitoruje wolumen przychodzących żądań, aby dostarczać informacji o skalowaniu do KEDA. 1 100 milicpu 500 MB Zestaw replik
<extensionName>-k8se-keda-cosmosdb-scaler Skaler KEDA Cosmos DB 1 10 m 128 MB Zestaw replik
<extensionName>-k8se-keda-metrics-apiserver Serwer metryk KEDA 1 1 rdzeń 1000 MB Zestaw replik
<extensionName>-k8se-keda-operator Skaluje obciążenia w górę i w dół od 0/1 do N instancji 1 100 milicpu 500 MB Zestaw replik
<extensionName>-k8se-log-processor Zbiera dzienniki z aplikacji i innych składników i wysyła je do usługi Log Analytics. 2 200 milicpu 500 MB DaemonSet
<extensionName>-k8se-mdm Agent metryk i dzienników 2 500 milicpu 500 MB Zestaw replik
dapr-metrics Moduł metryk Dapr 1 100 milicpu 500 MB Zestaw replik
dapr-operator Zarządza aktualizacjami składników i punktami końcowymi usługi dla platformy Dapr 1 100 milicpu 500 MB Zestaw replik
dapr-placement-server Używane tylko dla aktorów — tworzy tabele mapowania wystąpień aktora na zasobniki 1 100 milicpu 500 MB StatefulSet
dapr-sentry Zarządza mTLS pomiędzy usługami i działa jako urząd który wystawia certyfikaty 2 800 milicpu 200 MB Zestaw replik

Często zadawane pytania dotyczące usługi Azure Container Apps w usłudze Azure Arc

Które funkcje usługi Container Apps są obsługiwane?

Udokumentowany status wsparcia i wymagania wstępne każdej funkcji można znaleźć w sekcji Ograniczenia. Portal Azure wyłącza także kontrole, które nie są dostępne w środowisku połączonym. Wsparcie może zależeć od zainstalowanej wersji rozszerzenia, więc sprawdź notatki dotyczące wydania rozszerzenia przed użyciem niedawno dodanej funkcji.

Czy są obsługiwane tożsamości zarządzane?

Nie. Nie możesz przypisać tożsamości zarządzanej ani aplikacji kontenerowej, ani zadaniu w środowisku połączonym. Uwierzytelnianie za pomocą tożsamości zarządzanej podczas pobierania obrazów z usługi Azure Container Registry również jest niedostępne.

Jeśli aplikacja musi uwierzytelnić się do zasobu Azure, użyj aplikacji Microsoft Entra i service principal:

  1. Utwórz lub zidentyfikuj rejestrację aplikacji.
  2. Przypisz jej jednostce usługi tylko tę rolę platformy Azure, która jest wymagana przez aplikację.
  3. Zapisz dane jako sekret Container Apps.
  4. Odwołuj się do sekretu za pomocą zmiennych środowiskowych w aplikacji.
  5. Ustal proces rotacji uprawnień.

Aby uzyskać więcej informacji, zobacz Application and service principal objects in Microsoft Entra ID (Obiekty aplikacji i jednostki usługi w usłudze Microsoft Entra ID). Unikaj osadzania danych uwierzytelniających w obrazie lub repozytorium źródłowym.

Czy istnieją limity skalowania?

Aplikacje kontenerowe i zlecenia mogą skalować się tylko w ramach przydzielalnego CPU, pamięci oraz specjalistycznych zasobów dostępnych w klastrze Kubernetes. Ustawienie maksymalnej liczby replik nie rezerwuje pojemności.

Gdy klaster nie ma pojemności, Kubernetes pozostawia nowe repliki w oczekiwaniu i aplikacja nie osiąga wymaganej liczby replik. Sprawdź ten warunek za pomocą:

kubectl get pods -n <APPS_NAMESPACE>
kubectl describe pod <PENDING_POD_NAME> -n <APPS_NAMESPACE>
kubectl get events -n <APPS_NAMESPACE> --sort-by=.lastTimestamp

Planuj pojemność klastra z uwzględnieniem komponentów rozszerzenia, maksymalnej liczby replik aplikacji, obciążeń systemu Kubernetes, aktualizacji stopniowych i awarii węzłów.

Jakie dzienniki są zbierane?

Dzienniki zarówno składników systemu, jak i aplikacji są zapisywane w standardowych danych wyjściowych.

Oba typy dzienników można zbierać do analizy przy użyciu standardowych narzędzi Kubernetes. Można również skonfigurować rozszerzenie klastra środowiska aplikacji za pomocą obszaru roboczego usługi Log Analytics i wysyła wszystkie dzienniki do tego obszaru roboczego.

Domyślnie dzienniki ze składników systemu są wysyłane do zespołu platformy Azure. Dzienniki aplikacji nie są wysyłane. Możesz zapobiec transferowi tych dzienników, ustawiając element logProcessor.enabled=false jako ustawienie konfiguracji rozszerzenia. To ustawienie konfiguracji wyłącza przekazywanie aplikacji do obszaru roboczego usługi Log Analytics. Wyłączenie procesora dziennika może wpłynąć na czas potrzebny na obsługę przypadków pomocy technicznej, a zostaniesz poproszony o zebranie dzienników ze standardowego wyjścia za pomocą innych środków.

Jak zainstalować sterownik SMB?

Sterownik SMB można zainstalować przy użyciu następującego polecenia programu Helm. Aby uzyskać dodatkowe metody instalacji, zobacz Instalowanie sterownika w klastrze Kubernetes.

helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts
helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.18.0

Czy rozszerzenie można zainstalować w węzłach systemu Windows?

Nie, nie można zainstalować rozszerzenia w węzłach systemu Windows. Rozszerzenie obsługuje tylko instalację w węzłach systemu Linux.

Czy mogę wdrożyć rozszerzenie Container Apps na klastrze opartym na Arm64?

Nie. Rozszerzenie nie obsługuje klastrów opartych na Arm64.