Sdílet prostřednictvím


Nasazení aplikací pro Windows

Platí pro: AKS v Azure Stack HCI 22H2, AKS na Windows Serveru

Tento kurz popisuje, jak nasadit ukázkovou aplikaci ASP.NET v kontejneru Windows Serveru do clusteru Azure Kubernetes Service (AKS) v AKS povoleném službou Arc a pak otestovat a škálovat aplikaci. Dozvíte se také, jak připojit uzel Windows 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 AKS povolené službou Azure Arc.

Než začnete

Ujistěte se, že splňujete následující požadavky:

  • Cluster Azure Kubernetes Service s alespoň jedním pracovním uzlem Windows, který je spuštěný.
  • Soubor kubeconfig pro přístup ke clusteru.
  • Nainstaluje se modul AksHci PowerShellu.

Když budete postupovat podle pokynů:

  • Příkazy spusťte v okně správce PowerShellu.
  • Ujistěte se, že úlohy specifické pro operační systém přistanou na příslušném hostiteli kontejneru. Pokud má váš cluster Kubernetes kombinaci linuxových a pracovních uzlů s Windows, můžete použít selektory uzlů nebo tainty a tolerance. Další informace najdete v tématu použití selektorů a taintů a tolerací uzlů.

Nasazení aplikace

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

Ukázková aplikace ASP.NET je poskytována jako součást ukázek rozhraní .NET Framework a běží v kontejneru Windows Serveru. AKS Arc vyžaduje, aby kontejnery Windows Serveru byly založené na imagích Windows Serveru 2019.

Soubor manifestu Kubernetes musí také definovat selektor uzlu, který vašemu clusteru oznámí spuštění podu ukázkové aplikace ASP.NET na uzlu, který může spouštět kontejnery Windows Serveru.

Vytvořte soubor s názvem sample.yamla zkopírujte nebo vložte 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, že nasazení a služba byly úspěšně vytvořeny:

deployment.apps/sample created
service/sample created

Testování aplikace

Když se aplikace spustí, služba Kubernetes zveřejní front-end aplikace na internetu. Dokončení tohoto procesu může trvat několik minut. Občas může zřízení služby trvat déle než několik minut. V těchto případech povolte až 10 minut.

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

kubectl get service sample --watch

Na začátku se externí IP adresa ukázkové služby zobrazí jako čekající:

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

Když se externí IP adresa změní z čekání na skutečnou kubectl veřejnou IP adresu, použijte CTRL-C k zastavení procesu sledování. Následující příklad výstupu ukazuje platnou veřejnou IP adresu přiřazenou 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 zobrazit ukázkovou aplikaci v akci, otevřete webový prohlížeč na externí IP adresu vaší služby.

Snímek obrazovky s domovskou stránkou ukázkové aplikace ASP.NET pro Windows nasazenou v clusteru AKS

Pokud při pokusu o načtení stránky vyprší časový limit připojení, spuštěním příkazu ověřte, jestli je ukázková aplikace připravená kubectl get pods --watch . Někdy je externí IP adresa k dispozici před spuštěním kontejneru Windows.

Škálování podů aplikací

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

kubectl get pods -n default

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

kubectl scale --replicas=3 deployment/sample

Spusťte kubectl get pods znovu, abyste ověřili, že se pody vytvořily. Asi za minutu budou další pody dostupné ve vašem clusteru:

kubectl get pods -n default

Další kroky