Nasazení aplikací pro Windows v hybridníM prostředí AKS

Platí pro: AKS ve Službě Azure Stack HCI, AKS na Windows Serveru

V tomto kurzu se dozvíte, jak nasadit ukázkovou aplikaci ASP.NET v kontejneru Windows Serveru do clusteru Azure Kubernetes Service (AKS) v hybridní službě AKS 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 hybridní AKS.

Než začnete

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

Když provedete postupy:

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

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 se poskytuje jako součást ukázek rozhraní .NET Framework a běží v kontejneru Windows Serveru. Hybridní AKS vyžaduje, aby kontejnery Windows Serveru byly založené na imagích Windows Serveru 2019.

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

Vytvořte soubor s názvem sample.yamla zkopírujte 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. V některých případech 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

Zpočátku se externí IP adresauká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

Pokud se externí IP adresa změní z čekající na skutečnou veřejnou IP adresu, použijte CTRL-C k zastavení kubectl 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 ukázkovou aplikaci zobrazit v akci, otevřete webový prohlížeč na externí IP adresu vaší služby.

Snímek obrazovky domovské stránky ukázkové aplikace ASP.NET pro Windows nasazené 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 kubectl get , použijte následující příkaz:

kubectl get pods -n default

Pokud chcete změnit počet podů v ukázkovém nasazení, použijte příkaz kubectl scale . 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 a ověřte, že se pody vytvořily. Přibližně po minutě budou ve vašem clusteru k dispozici další pody.

kubectl get pods -n default

Další kroky