Szybki start: wdrażanie aplikacji w nowym klastrze automatycznym Azure Kubernetes Service (AKS) z repozytorium kodu

Dotyczy: ✔️ AKS Automatic

Użyj wdrożeń automatycznych, aby zbudować i wdrożyć aplikację z repozytorium kodu w nowym lub istniejącym klastrze AKS Automatic. Wdrożenia automatyczne upraszczają proces konfigurowania przepływu pracy akcji GitHub w celu skompilowania i wdrożenia kodu. Po nawiązaniu połączenia, każdy nowy commit rozpoczyna potok. Wdrożenia automatyczne są oparte na draft.sh. Podczas tworzenia nowego przepływu pracy wdrażania można użyć istniejącego pliku Dockerfile, wygenerować plik Dockerfile, użyć istniejących manifestów platformy Kubernetes lub wygenerować manifesty platformy Kubernetes. Wygenerowane manifesty są tworzone z myślą o najlepszych rozwiązaniach dotyczących zabezpieczeń i odporności. Usługa AKS Automatic obejmuje również umowę SLA dotyczącą gotowości zasobników , która gwarantuje 99,9% ukończenia kwalifikujących się operacji gotowości zasobnika w ciągu 5 minut, zapewniając niezawodną infrastrukturę samonaprawiania dla aplikacji.

Z tego przewodnika Szybki start dowiesz się, jak wykonywać następujące zadania:

  • Połącz się z repozytorium kodu.
  • Konteneryzowanie aplikacji.
  • Konfigurowanie manifestów platformy Kubernetes.
  • Utwórz klaster AKS Automatic.
  • Wdróż aplikację za pośrednictwem pull request.

Zanim rozpoczniesz

Ważne

Począwszy od wersji AKS 1.36 nowe klastry AKS Automatic będą domyślnie włączać Kubernetes Gateway API za pośrednictwem dodatku routingu aplikacji zamiast Managed NGINX Ingress z dodatkiem routingu aplikacji ze względu na wycofanie upstreamowego Ingress NGINX.

Nie ma to wpływu na istniejące klastry automatyczne, ale należy rozpocząć migrację do interfejsu API usługi Kubernetes Gateway za pośrednictwem dodatku routingu aplikacji.

Ograniczenia

Następujące ograniczenia dotyczą klastrów automatycznych usługi AKS:

  • Usługa AKS Automatic jest ogólnie dostępna w następujących regionach: australiaeast, austriaeast, belgiumcentral, brazilsouth, canadacentral, centralindia, centralus, chilecentral, denmarkeast, eastasia, eastus, eastus2, francecentral, germanywestcentral, indonesiacentral, israelcentral, italynorth, japaneast, japanwest, koreacentral, malaysiawest, mexicocentral, newzealandnorth, northeurope, norwayeast, polandcentral, southafricanorth, southcentralus, southeastasia, spaincentral, swedencentral, switzerlandnorth, uaenorth, uksouth, westeurope, westus2, westus3.
    • Nowe klastry AKS Automatic mają domyślnie włączone zarządzane pule węzłów systemowych i LocalDNS. W żadnym regionie nie można utworzyć klastrów AKS Automatic bez zarządzanych pul węzłów systemowych.
  • Klaster automatyczny AKS ma wstępnie skonfigurowaną blokadę grupy zasobów węzłów, która nie pozwala na wprowadzanie zmian w grupie zasobów MC_, uniemożliwiając tworzenie łączy sieci wirtualnej w domyślnej prywatnej strefie DNS. W przypadku scenariuszy między sieciami wirtualnymi lub niestandardowymi systemami DNS użyj niestandardowej sieci i prywatnego systemu DNS, postępując zgodnie z instrukcjami Utwórz prywatny klaster Azure Kubernetes Service (AKS) automatyczny w niestandardowej sieci wirtualnej.
  • Azure CLI wymagana jest wersja 2.86.0 lub nowsza. Aby znaleźć wersję, uruchom az --version polecenie . Jeśli musisz zainstalować lub uaktualnić, zobacz Install Azure CLI.
  • Następujące rozszerzenia nie są obsługiwane:
  • Węzły systemu Windows nie są obsługiwane.
  • Migracja między podstawową jednostką SKU AKS a automatyczną jednostką SKU nie jest obsługiwana.
  • Migracje między klastrami automatycznymi usługi AKS bez zarządzanych pul węzłów systemowych i automatycznych klastrów usługi AKS z zarządzanymi pulami węzłów systemu nie są obsługiwane.

Przenoszenie kodu źródłowego aplikacji

Aby wdrożyć aplikację z repozytorium kodu, zacznij od portalu Azure strony głównej.

Zrzut ekranu przedstawiający wybieranie pozycji

  1. Wyszukaj usługi Kubernetes na górnym pasku wyszukiwania.
  2. Wybierz pozycję Kubernetes services w wynikach wyszukiwania.
  3. Wybierz przycisk Utwórz i wybierz pozycję Wdróż aplikację.

Nawiązywanie połączenia z repozytorium kodu źródłowego

Utwórz i zautomatyzowany przepływ pracy wdrażania i autoryzuj go w celu nawiązania połączenia z żądanym repozytorium kodu źródłowego.

  1. Na karcie Podstawy wybierz pozycję Wdróż aplikację.
  2. W obszarze Project details wybierz SubscriptionResource Group i Region.
  3. W obszarze Szczegóły repozytorium wprowadź nazwę przepływu pracy, a następnie wybierz pozycję Authorize access aby nawiązać połączenie z żądanym repozytorium GitHub.
  4. Wybierz repozytorium i gałąź.
  5. Kliknij przycisk Next (Dalej).

Wybieranie konfiguracji obrazu kontenera

Aby przygotować aplikację dla platformy Kubernetes, należy ją skompilować w obraz kontenera i zapisać w rejestrze kontenerów. Plik Dockerfile służy do udostępniania instrukcji dotyczących sposobu kompilowania obrazu kontenera. Jeśli repozytorium kodu źródłowego nie ma jeszcze pliku Dockerfile, automatyczne wdrożenia mogą generować je dla Ciebie, w przeciwnym razie możesz użyć istniejącego pliku Dockerfile.

Użyj zautomatyzowanych wdrożeń, aby wygenerować plik Dockerfile dla wielu języków i struktur, takich jak Go, C#, Node.js, Python, Java, Gradle, Clojure, PHP, Ruby, Erlang, Swift i Rust. Obsługa języka jest oparta na tym, co jest dostępne w draft.sh.

  1. Wybierz pozycję Automatyczne konteneryzowanie (utwórz Dockerfile) dla konfiguracji kontenera.
  2. Wybierz lokalizację miejsca zapisania wygenerowanego pliku Dockerfile w repozytorium.
  3. Wybierz środowisko aplikacji z listy obsługiwanych języków i struktur.
  4. Wprowadź port aplikacji.
  5. Wybierz istniejącą Azure Container Registry lub utwórz nową. Ten rejestr służy do przechowywania utworzonego obrazu aplikacji. Automatycznemu klastrowi usługi AKS przypisano tożsamość kubelet z uprawnieniami do tego rejestru.

Wybieranie konfiguracji manifestu platformy Kubernetes

Aplikacja działająca na platformie Kubernetes składa się z wielu podstawowych składników platformy Kubernetes. Te składniki opisują obraz kontenera do użycia, liczbę replik do uruchomienia, jeśli istnieje publiczny adres IP wymagany do uwidocznienia aplikacji itp. Aby uzyskać więcej informacji, zobacz oficjalną dokumentację platformy Kubernetes. Jeśli repozytorium kodu źródłowego nie ma jeszcze podstawowych manifestów platformy Kubernetes do wdrożenia, zautomatyzowane wdrożenia mogą je wygenerować dla Ciebie, w przeciwnym razie możesz użyć zestawu istniejących manifestów. Możesz również wybrać istniejący Helm chart.

Użyj zautomatyzowanych wdrożeń, aby wygenerować zestaw podstawowych plików manifestu platformy Kubernetes w celu uruchomienia aplikacji. W tej chwili zautomatyzowane wdrożenia tworzą Deployment, Service i ConfigMap.

Wygenerowane manifesty są przeznaczone do stosowania zaleceń dotyczących zabezpieczeń wdrożenia, takich jak:

  • Automatyczne generowanie sond żywotności, gotowości i uruchamiania.
  • Preferuj ograniczenia anty-koligacji i topologii zasobnika, które rozkładają repliki na różne węzły w celu zwiększenia odporności.
  • Wymuszanie RuntimeDefaultprofilu bezpiecznego przetwarzania , który ustanawia dodatkową warstwę ochrony przed typowymi lukami w zabezpieczeniach wywołań systemu wykorzystywanymi przez złośliwych podmiotów.
  • Usuwanie wszystkich możliwości Linux i zezwalanie tylko na ograniczony zestaw zgodnie z bazowymi standardami zabezpieczeń Pod Kubernetes.

Aby wygenerować manifesty platformy Kubernetes:

  1. Wybierz pozycję Generuj pliki wdrażania aplikacji dla opcji wdrażania.
  2. Wprowadź port aplikacji. Ten port jest używany na wygenerowanym Service.
  3. Wybierz lokalizację miejsca zapisania wygenerowanych manifestów kubernetes w repozytorium.
  4. Kliknij przycisk Next (Dalej).

Wybierz miejsce, w którym chcesz wdrożyć aplikację

Jeśli nie masz jeszcze klastra, możesz utworzyć nowy, automatyczny klaster AKS w ramach tego wdrożenia.

  1. Wybierz pozycję Utwórz automatyczny klaster Kubernetes dla konfiguracji klastra.
  2. Wprowadź nazwę klastra.
  3. Wybierz harmonogram konserwacji automatycznego uaktualniania lub pozostaw wybraną wartość domyślną.
  4. Wprowadź przestrzeń nazw Kubernetes , w której jest wdrażana aplikacja.
  5. Wybierz poziom monitorowania i rejestrowania lub pozostaw wybraną wartość domyślną.
  6. Kliknij przycisk Next (Dalej).

Przeglądanie konfiguracji i wdrażanie

Przejrzyj konfigurację manifestów klastra, aplikacji i platformy Kubernetes, a następnie wybierz pozycję Wdróż. Tworzenie klastra trwa kilka minut, nie odchodź od strony wdrożenia.

Zrzut ekranu przedstawiający wdrażanie aplikacji.

  1. Tworzy się nowy klaster automatyzacji AKS lub konfiguruje istniejący.
  2. Rejestr kontenerów jest tworzony lub istniejący jest skonfigurowany z klastrem.
  3. Tworzone są poświadczenia federacyjne, aby umożliwić wdrażanie w klastrze przepływu pracy akcji GitHub.
  4. Pull request jest tworzony w repozytorium kodu z wygenerowanymi plikami i procesem pracy.

Przeglądanie i scalanie żądania ściągnięcia

Po pomyślnym zakończeniu wdrażania wybierz przycisk Wyświetl żądanie ściągnięcia , aby wyświetlić szczegóły wygenerowanego żądania ściągnięcia w repozytorium kodu.

Zrzut ekranu pull request na GitHub.

  1. Przejrzyj zmiany w obszarze Pliki zmienione i wprowadź żądane zmiany.
  2. Wybierz pozycję Scal żądanie ściągnięcia , aby scalić zmiany w repozytorium kodu.

Połączenie zmiany powoduje uruchomienie przepływu pracy GitHub Actions, który buduje aplikację jako obraz kontenera, przechowuje go w Azure Container Registry i wdraża go w klastrze.

Zrzut ekranu przedstawiający przepływ pracy GitHub Actions w toku.

Sprawdzanie wdrożonych zasobów

Po zakończeniu pipeline'u możesz przejrzeć utworzone Service Kubernetes w portalu Azure, wybierając Usługi i ingresy w menu Zasoby Kubernetes usługi.

Zrzut ekranu przedstawiający okienko Usługi i ruch przychodzący.

Wybranie zewnętrznego adresu IP powinno otworzyć nową stronę przeglądarki z uruchomioną aplikacją.

Zrzut ekranu przedstawiający uruchomioną aplikację Contoso Air.

Usuwanie zasobów

Po zakończeniu pracy z klastrem można go usunąć, aby uniknąć naliczania opłat Azure.

  1. W portalu Azure przejdź do grupy zasobów.
  2. Wybierz pozycję Usuń grupę zasobów.
  3. Wprowadź nazwę grupy zasobów, aby potwierdzić usunięcie, a następnie wybierz pozycję Usuń.
  4. W oknie dialogowym Usuwanie potwierdzenia wybierz pozycję Usuń.

Następne kroki

W tym szybkim przewodniku wdrożono aplikację w klastrze Kubernetes przy użyciu AKS Automatic i skonfigurowano potok ciągłej integracji/ciągłego wdrażania (CI/CD) z repozytorium kodu.

Aby dowiedzieć się więcej o usłudze AKS Automatic, przejdź do wprowadzenia.