Nasazení Windows aplikací v Azure Kubernetes Service v Azure Stack HCI

Platí pro: Azure Stack HCI, verze 21H2 a 20H2; Windows Server 2022 Datacenter, Windows Server 2019 Datacenter

V tomto kurzu nasadíte ukázkovou aplikaci ASP.NET kontejneru Windows Serveru do clusteru Kubernetes a naučíte se, jak otestovat a škálovat aplikaci. Dozvíte se také, jak připojit Windows uzly k doméně služby Active Directory. V tomto kurzu se předpokládá základní znalost konceptů Kubernetes. Další informace najdete v tématu Základní koncepty Kubernetes pro Azure Kubernetes Service v Azure Stack HCI.

Než začnete

Ověřte, že máte připravené následující požadavky:

Nasazení aplikace

Soubor manifestu Kubernetes definuje požadovaný stav clusteru, například to, jaké image kontejnerů se mají spustit. V tomto článku se manifest používá k vytvoření všech objektů potřebných ke spuštění ukázkové ASP.NET aplikace v kontejneru Windows Server. Tento manifest zahrnuje nasazení Kubernetes pro ukázkovou ASP.NET a externí službu Kubernetes pro přístup k aplikaci z internetu.

Ukázková ASP.NET aplikace se poskytuje jako součást ukázky .NET Framework a spouští se v kontejneru Windows Server. Azure Kubernetes Service v Azure Stack HCI, aby Windows Server byly založené na imagích Windows Serveru 2019.

Soubor manifestu Kubernetes musí také definovat selektor uzlů, který clusteru AKS řekne, aby pod vaší ukázkové aplikace ASP.NET spouštěl na uzlu, který může spouštět kontejnery Windows Serveru.

Vytvořte soubor s názvem a sample.yaml zkopírujte ho v následující definici 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

Nasaďte aplikaci pomocí kubectl apply příkazu a zadejte název manifestu YAML:

kubectl apply -f sample.yaml

Následující příklad výstupu ukazuje úspěšné vytvoření nasazení a služby:

deployment.apps/sample created
service/sample created

Testování aplikace

Při spuštění aplikace služba Kubernetes zpřístupní front-end aplikace na internetu. Dokončení tohoto procesu může trvat několik minut. Zřizování služby může občas trvat déle než několik minut. V těchto případech můžete povolit až 10 minut.

Pokud chcete sledovat průběh, kubectl get service použijte příkaz s --watch argumentem .

kubectl get service sample --watch

Zpočátku se EXTERNAL-IP pro ukázkovou službu zobrazuje jako čekající.

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

Pokud se adresa EXTERNAL-IP změní z čekající na skutečnou veřejnou IP adresu, pomocí zastavte proces sledování. Následující příklad výstupu ukazuje platnou veřejnou IP adresu přiřazenou ke službě:

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

Pokud chcete vidět ukázkovou aplikaci v akci, otevřete webový prohlížeč na externí IP adrese vaší služby.

Image of browsing to ASP.NET sample application

Pokud při pokusu o načtení stránky dojde k časovému limitu připojení, ověřte, jestli je ukázková aplikace připravená kubectl get pods --watch příkazem . V některých případech je externí IP adresa dostupná před zahájením kontejneru Windows.

Škálování podů aplikace

Vytvořili jsme jednu repliku front-endu aplikace. Pokud chcete zobrazit počet a stav podů v clusteru, použijte kubectl get příkaz následujícím způsobem:

kubectl get pods -n default

Pokud chcete změnit počet podů v ukázkovém nasazení, použijte příkaz . Následující příklad zvýší počet front-endových podů na 3:

kubectl scale --replicas=3 deployment/sample

Znovu kubectl get pods spusťte příkaz , abyste ověřili, že byly vytvořeny další pody. Asi za minutu budou další pody dostupné ve vašem clusteru:

kubectl get pods -n default

Další kroky