Windows uygulamaları dağıtma

Şunlar için geçerlidir: Windows Server'da AKS

Bu öğreticide, Windows Server kapsayıcısında ASP.NET bir örnek uygulamanın Windows Server 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ü bir Active Directory etki alanına nasıl birleştireceğinizi de öğrenirsiniz.

Bu öğreticide Kubernetes kavramları hakkında temel bilgiler edinirsiniz. Daha fazla bilgi için bkz. Windows Server'da AKS için Kubernetes temel kavramları.

Başlamadan önce

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

  • En az bir Windows çalışan düğümü çalışır durumda olan bir Azure Kubernetes Service kümesi.
  • Kümeye erişmek için bir kubeconfig dosyası.
  • AksHci PowerShell modülü yüklenir.

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 renk tonlarını ve toleransları kullanabilirsiniz. Daha fazla bilgi için bkz. Düğüm seçicileri, renk tonlarını ve toleransları kullanma.

Uygulamayı dağıt

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 Windows Server kapsayıcısında çalışır. AKS, Windows Server kapsayıcılarının Windows Server 2019 görüntülerine dayalı olmasını gerektirir.

Kubernetes bildirim dosyasının ayrıca kümenize ASP.NET örnek uygulamanızın podunu Windows Server kapsayıcıları ç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 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 et

Uygulama çalıştığında, bir Kubernetes hizmeti uygulamanın ön yüzünü internete açar. 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 pending durumundan gerçek bir genel IP adresine değiştiğinde, CTRL-C watch işlemini durdurmak için kubectl kullanın. 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 uygulamanı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 . Bir dakika kadar sonra kümenizde ek podlar kullanılabilir:

kubectl get pods -n default

Sonraki Adımlar