Windows uygulamalarını dağıtma

Şunlar için geçerlidir: Azure Stack HCI 22H2 üzerinde AKS, Windows Server'da AKS

Bu öğreticide, Windows Server kapsayıcısında bir ASP.NET örnek uygulamasını Arc tarafından etkinleştirilen AKS'deki Azure Kubernetes Service (AKS) kümesine dağıtma ve ardından uygulamanızı test etme ve ölçeklendirme işlemleri açıklanmaktadır. Ayrıca Bir Windows düğümünü Active Directory etki alanına nasıl ekleyeceğinizi de öğrenirsiniz.

Bu öğreticide Kubernetes kavramlarını temel olarak anlamayı varsaymaktadır. Daha fazla bilgi için bkz. AKS karma için Kubernetes temel kavramları.

Başlamadan önce

Aşağıdaki gereksinimleri karşıladığınızdan emin olun:

Yordamları uyguladığınızda:

  • Komutları bir PowerShell yönetim penceresinde çalıştırın.
  • İşletim sistemine özgü iş yüklerinin uygun kapsayıcı konağına indiğinden emin olun. Kubernetes kümenizde Linux ve Windows çalışan düğümlerinin bir karışımı varsa düğüm seçicileri veya renk tonları ve toleransları kullanabilirsiniz. Daha fazla bilgi için bkz. Düğüm seçicileri, renk tonlarını ve toleransları kullanma.

Uygulamayı dağıtma

Kubernetes bildirim dosyası, hangi kapsayıcı görüntülerinin çalıştırıldığı gibi küme için istenen durumu tanımlar. Bu yordamlarda, windows server kapsayıcısında ASP.NET örnek uygulamasını çalıştırmak için gereken tüm nesneleri oluşturmak için bir bildirim kullanılır. Bu bildirim, ASP.NET örnek uygulaması için bir Kubernetes dağıtımı ve uygulamaya İnternet'ten erişmek için bir dış Kubernetes hizmeti içerir.

ASP.NET örnek uygulaması, .NET Framework örneklerinin bir parçası olarak sağlanır ve bir Windows Server kapsayıcısında çalışır. AKS Arc, Windows Server kapsayıcılarının Windows Server 2019 görüntülerini temel almalarını gerektirir.

Kubernetes bildirim dosyasının ayrıca kümenize ASP.NET örnek uygulamanızın podunu Windows Server kapsayıcılarını çalıştırabilen bir düğümde çalıştırmasını bildirmek için bir düğüm seçici tanımlaması gerekir.

adlı sample.yamlbir dosya oluşturun ve aşağıdaki YAML tanımını kopyalayıp yapıştırın:

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

komutunu kullanarak kubectl apply uygulamayı dağıtın ve YAML bildiriminizin adını belirtin:

kubectl apply -f sample.yaml

Aşağıdaki örnek çıktı, dağıtımın ve hizmetin başarıyla oluşturulduğunu gösterir:

deployment.apps/sample created
service/sample created

Uygulamayı test edin

Uygulama çalıştırıldığında Kubernetes hizmeti, uygulama ön ucunu İnternet'te kullanıma sunar. Bu işlemin tamamlanması birkaç dakika sürebilir. Bazen hizmetin sağlanması birkaç dakikadan uzun sürebilir. Bu durumlarda 10 dakikaya kadar izin verin.

İlerleme durumunu kubectl get service izlemek için komutunu bağımsız değişkeniyle --watch birlikte kullanın:

kubectl get service sample --watch

Başlangıçta, örnek hizmetin EXTERNAL-IP'ibeklemede olarak gösterilir.

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

EXTERNAL-IP adresi beklemeden gerçek bir genel IP adresine değiştiğinde, watch işlemini durdurmak kubectl için kullanınCTRL-C. Aşağıdaki örnek çıktı, hizmete atanmış geçerli bir genel IP adresini gösterir:

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

Örnek uygulamayı uygulamada görmek için, hizmetinizin dış IP adresine bir web tarayıcısı açın.

AKS kümesinde dağıtılan Windows için ASP.NET örnek uygulamasının giriş sayfasının ekran görüntüsü.

Sayfayı yüklemeye çalıştığınızda bağlantı zaman aşımına uğradıysa komutunu çalıştırarak kubectl get pods --watch örnek uygulamanın hazır olup olmadığını doğrulayın. Bazen, dış IP adresi Windows kapsayıcısı başlatılmadan önce kullanılabilir.

Uygulama podlarını ölçeklendirme

Uygulama ön ucunun tek bir çoğaltmasını oluşturduk. Kümenizdeki podların sayısını ve durumunu görmek için komutunu aşağıdaki gibi kullanın kubectl get :

kubectl get pods -n default

Örnek dağıtımdaki pod sayısını değiştirmek için komutunu kullanınkubectl scale. Aşağıdaki örnek, ön uç podlarının sayısını 3'e yükseltir:

kubectl scale --replicas=3 deployment/sample

Podların oluşturulduğunu doğrulamak için yeniden çalıştırın kubectl get pods . Yaklaşık bir dakika sonra ek podlar kümenizde kullanılabilir duruma gelir:

kubectl get pods -n default

Sonraki adımlar