Aracılığıyla paylaş


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 ASP.NET örnek bir uygulamanın Arc tarafından etkinleştirilen AKS'deki Azure Kubernetes Service (AKS) kümesine nasıl dağıtılacağı ve ardından uygulamanızın nasıl test ve ölçeklendirildiği açıklanır. Ayrıca Bir Windows düğümünü Active Directory etki alanına nasıl ekleyeceğinizi de öğrenirsiniz.

Bu öğreticide Kubernetes kavramları hakkında temel bilgiler edinirsiniz. Daha fazla bilgi için bkz . Azure Arc tarafından etkinleştirilen AKS 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önetici penceresinde çalıştırın.
  • İşletim sistemine özgü iş yüklerinin uygun kapsayıcı konağına yüklendiğinden emin olun. Kubernetes kümenizde Linux ve Windows çalışan düğümlerinin bir karışımı varsa düğüm seçicileri veya toint 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, ASP.NET örnek uygulamasını bir Windows Server kapsayıcısında ç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ı, 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 de tanımlamalıdır.

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 uygulamayı dağıtın kubectl apply 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 etme

Uygulama çalıştırıldığında Kubernetes hizmeti, uygulamanın ö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'i beklemede 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 kubectl izleme işlemini durdurmak için kullanınCTRL-C. Aşağıdaki örnek çıktıda hizmete atanmış geçerli bir genel IP adresi gösterilmektedir:

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şlamadan ö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