Udostępnij za pośrednictwem


Wdrażanie aplikacji

W tym artykule opisano sposób wdrażania konteneryzowanej aplikacji w klastrze Kubernetes.

Wymagania wstępne

Aby rozpocząć pracę, skonfiguruj pojedynczą maszynę Kubernetes lub pełny klaster Kubernetes .

Wdrażanie przykładowej aplikacji systemu Linux

Krok 1. Aktualizowanie pliku manifestu

W tym artykule użyto przykładowej aplikacji, która jest prostą aplikacją do głosowania składającą się z frontonu i zaplecza, która jest oparta na obrazie platformy Azure-vote-front firmy Microsoft. Obraz kontenera dla tej aplikacji jest hostowany na Azure Container Registry (ACR). Zobacz linux-sample.yaml w pakiecie repozytorium GitHub dla manifestu wdrożenia. W języku YAML określiliśmy nodeSelector tag jako Linux.

Krok 2. Wdrażanie aplikacji

Aby wdrożyć aplikację, użyj polecenia kubectl apply. To polecenie analizuje plik manifestu i tworzy zdefiniowane obiekty usługi Kubernetes. Określ plik manifestu YAML, jak pokazano w poniższym przykładzie:

kubectl apply -f  https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml

Krok 3. Weryfikowanie zasobników

Poczekaj kilka minut, aż zasobniki będą w stanie uruchomienia :

kubectl get pods -o wide

Zrzut ekranu przedstawiający uruchomione zasobniki systemu Linux.

Krok 4. Weryfikowanie usług

Aby monitorować postęp, użyj polecenia kubectl get services z parametrem --watch :

kubectl get services

Zrzut ekranu przedstawiający uruchomione usługi systemu Linux.

EXTERNAL-IP Początkowo element dla azure-vote-front usługi jest wyświetlany jako pending. EXTERNAL-IP Gdy adres zmieni się z pending rzeczywistego publicznego adresu IP, możesz użyć adresu IP przypisanego do usługi.

Ważne

W przypadku klastrów pojedynczej maszyny, jeśli klaster Kubernetes został wdrożony bez określenia parametru -ServiceIPRangeSize, nie będziesz mieć przydzielonych adresów IP dla usług obciążeń i nie będziesz mieć zewnętrznego adresu IP. W takim przypadku znajdź adres IP maszyny wirtualnej z systemem Linux (Get-AksEdgeNodeAddr):

Get-AksEdgeNodeAddr -NodeType Linux

Teraz możesz dołączyć port zewnętrzny do adresu IP maszyny wirtualnej (na przykład 192.168.1.12:30432).

Krok 5. Testowanie aplikacji

Aby wyświetlić działającą aplikację, otwórz zewnętrzny adres IP usługi w przeglądarce internetowej:

Zrzut ekranu przedstawiający uruchomione aplikacje systemu Linux.

Jeśli aplikacja nie zostanie załadowana, może to być spowodowane problemem z autoryzacją w rejestrze obrazów. Aby wyświetlić stan kontenerów, użyj polecenia kubectl get pods. Jeśli nie można pobrać obrazów kontenera, zobacz Uwierzytelnianie przy użyciu Azure Container Registry z Azure Kubernetes Service.

Krok 6. Usuwanie aplikacji

Aby wyczyścić, usuń wszystkie zasoby przy użyciu następującego polecenia:

kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml

Wdrażanie przykładowej aplikacji systemu Windows w klastrze

W tym przykładzie jest uruchamiana przykładowa aplikacja ASP.NET oparta na przykładowym obrazie firmy Microsoft. Zobacz win-sample.yaml. YaML określa nodeSelector tag jako system Windows.

Krok 1. Wdrożenie aplikacji przez określenie nazwy manifestu YAML

Upewnij się, że jesteś w katalogu YAML w oknie programu PowerShell, a następnie uruchom następujące polecenie:

kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml

Krok 2. Sprawdź, czy przykładowy zasobnik jest uruchomiony

Może upłynąć trochę czasu, aby zasobnik osiągnął stan działania, w zależności od połączenia internetowego. Obraz ASP.NET jest duży:

kubectl get pods -o wide

Zrzut ekranu przedstawiający uruchomione zasobniki systemu Windows.

Krok 3. Sprawdzenie, czy przykładowa usługa jest uruchomiona

kubectl get services

Zrzut ekranu przedstawiający uruchomione usługi systemu Windows.

Ponieważ ten przykład jest wdrażany jako usługa typu NodePort, możesz pobrać adres IP węzła Kubernetes, na którym działa aplikacja, a następnie dołączyć port węzła NodePort. Pobierz adres IP węzła Kubernetes przy użyciu następującego Get-AksEdgeNodeAddrpolecenia:

Get-AksEdgeNodeAddr -NodeType Windows

Screesnhot przedstawiający informacje o klastrze systemu Windows.

Krok 4. Weryfikowanie uruchomionego przykładu systemu Windows

Otwórz przeglądarkę internetową i znajdź węzeł NodePort , aby uzyskać dostęp do usługi:

Zrzut ekranu przedstawiający uruchomioną aplikację systemu Windows.

Krok 5. Czyszczenie

Aby wyczyścić, usuń wszystkie zasoby przy użyciu następującego polecenia:

kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml

Wdrażanie własnych aplikacji

W poprzednich krokach pokazano, jak można wdrożyć nasze przykładowe aplikacje. Aby wdrożyć własną aplikację, wykonaj następujące czynności:

  • Spakuj aplikację do obrazu kontenera, a następnie przekaż obraz do Azure Container Registry lub w wybranym rejestrze kontenerów. Zapoznaj się z tymi krokami, aby utworzyć obraz kontenera aplikacji.

  • Usługa AKS Edge Essentials umożliwia klastry mieszane systemu operacyjnego. Upewnij się, że zasobniki są zaplanowane na węzłach przy użyciu odpowiedniego systemu operacyjnego. Dodaj nodeSelector do plików wdrożenia. Ta opcja informuje platformę Kubernetes o uruchomieniu zasobników w węzłach określonego systemu operacyjnego. Jeśli klaster jest pojedynczym systemem operacyjnym, możesz pominąć ten krok; ale w celu uzyskania najlepszych rozwiązań oznacz każdy plik wdrożenia selektorami węzłów:

    nodeSelector:
        "kubernetes.io/os": linux
    
    nodeSelector:
        "kubernetes.io/os": windows
    

Następne kroki