Udostępnij za pośrednictwem


Wdrażanie aplikacji systemu Windows

Dotyczy: usługa AKS w usłudze Azure Stack HCI 22H2, AKS w systemie Windows Server

W tym samouczku opisano sposób wdrażania przykładowej aplikacji ASP.NET w kontenerze systemu Windows Server w klastrze usługi Azure Kubernetes Service (AKS) w usłudze AKS włączonej przez usługę Arc, a następnie przetestować i skalować aplikację. Dowiesz się również, jak dołączyć węzeł systemu Windows do domeny usługi Active Directory.

W tym samouczku założono podstawową wiedzę na temat pojęć związanych z platformą Kubernetes. Aby uzyskać więcej informacji, zobacz Podstawowe pojęcia dotyczące usługi Kubernetes dla usługi AKS włączone przez usługę Azure Arc.

Zanim rozpoczniesz

Upewnij się, że zostały spełnione następujące wymagania:

  • Klaster usługi Azure Kubernetes Service z co najmniej jednym węzłem roboczym systemu Windows uruchomionym.
  • Plik kubeconfig, aby uzyskać dostęp do klastra.
  • Zainstalowano moduł AksHci programu PowerShell.

Podczas wykonywania procedur:

Wdrażanie aplikacji

Plik manifestu platformy Kubernetes definiuje żądany stan klastra, taki jak obrazy kontenerów do uruchomienia. W tych procedurach manifest służy do tworzenia wszystkich obiektów wymaganych do uruchomienia przykładowej aplikacji ASP.NET w kontenerze systemu Windows Server. Ten manifest obejmuje wdrożenie platformy Kubernetes dla przykładowej aplikacji ASP.NET oraz zewnętrzną usługę Kubernetes w celu uzyskania dostępu do aplikacji z Internetu.

Przykładowa aplikacja ASP.NET jest udostępniana jako część przykładów programu .NET Framework i działa w kontenerze systemu Windows Server. Usługa AKS Arc wymaga, aby kontenery systemu Windows Server opierały się na obrazach systemu Windows Server 2019.

Plik manifestu platformy Kubernetes musi również zdefiniować selektor węzła, aby poinformować klaster o uruchomieniu zasobnika przykładowej aplikacji ASP.NET w węźle, który może uruchamiać kontenery systemu Windows Server.

Utwórz plik o nazwie sample.yamli skopiuj/wklej następującą definicję YAML:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: sample
  labels:
    app: sample
spec:
  replicas: 1
  template:
    metadata:
      name: sample
      labels:
        app: sample
    spec:
      nodeSelector:
        "beta.kubernetes.io/os": windows
      containers:
      - name: sample
        image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp
        resources:
          limits:
            cpu: 1
            memory: 800M
          requests:
            cpu: .1
            memory: 300M
        ports:
          - containerPort: 80
  selector:
    matchLabels:
      app: sample
---
apiVersion: v1
kind: Service
metadata:
  name: sample
spec:
  type: LoadBalancer
  ports:
  - protocol: TCP
    port: 80
  selector:
    app: sample

Wdróż aplikację przy użyciu kubectl apply polecenia i określ nazwę manifestu YAML:

kubectl apply -f sample.yaml

Następujące przykładowe dane wyjściowe pokazują, że wdrożenie i usługa zostały pomyślnie utworzone:

deployment.apps/sample created
service/sample created

Testowanie aplikacji

Podczas uruchamiania aplikacji usługa Kubernetes uwidacznia fronton aplikacji w Internecie. Ten proces może potrwać kilka minut. Czasami aprowizacja usługi może potrwać dłużej niż kilka minut. W takich przypadkach poczekaj do 10 minut.

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

kubectl get service sample --watch

Początkowo adres EXTERNAL-IP dla przykładowej usługi jest wyświetlany jako oczekujący:

NAME    TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
sample  LoadBalancer   10.0.37.27   <pending>     80:30572/TCP   6s

Gdy dla adresu EXTERNAL-IP wartość oczekujący zmieni się na rzeczywisty publiczny adres IP, naciśnij klawisze CTRL-C, aby zatrzymać proces śledzenia narzędzia kubectl. Następujące przykładowe dane wyjściowe przedstawiają prawidłowy publiczny adres IP przypisany do usługi:

NAME    TYPE           CLUSTER-IP   EXTERNAL-IP     PORT(S)        AGE
sample  LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   2m

Aby wyświetlić przykładową aplikację w akcji, otwórz przeglądarkę internetową pod zewnętrznym adresem IP usługi.

Zrzut ekranu przedstawiający stronę główną przykładowej aplikacji ASP.NET dla systemu Windows wdrożonej w klastrze usługi AKS.

Jeśli przekroczono limit czasu połączenia podczas próby załadowania strony, sprawdź, czy przykładowa aplikacja jest gotowa, uruchamiając kubectl get pods --watch polecenie . Czasami zewnętrzny adres IP jest dostępny przed uruchomieniem kontenera systemu Windows.

Skalowanie zasobników aplikacji

Utworzyliśmy pojedynczą replikę frontonu aplikacji. Aby wyświetlić liczbę i stan zasobników w klastrze, użyj kubectl get polecenia w następujący sposób:

kubectl get pods -n default

Aby zmienić liczbę zasobników w przykładowym wdrożeniu, użyj kubectl scale polecenia . Poniższy przykład zwiększa liczbę zasobników frontonu do 3:

kubectl scale --replicas=3 deployment/sample

Uruchom ponownie polecenie kubectl get pods , aby sprawdzić, czy zasobniki zostały utworzone. Po upływie około minuty dodatkowe zasobniki będą dostępne w Twoim klastrze:

kubectl get pods -n default

Następne kroki