Aracılığıyla paylaş


Linux uygulaması dağıtma

Şunlar için geçerlidir: Azure Yerel 22H2'de AKS, Windows Server'da AKS

Bu kılavuzda, Azure Arc tarafından etkinleştirilen AKS'deki Kubernetes kümenizde web ön ucu ve Redis veritabanı örneği içeren çok kapsayıcılı bir uygulamanın nasıl dağıtılacağı açıklanmaktadır. Ayrıca uygulamanızı test etmeyi ve ölçeklendirmeyi de öğrenirsiniz.

Bu nasıl yapılır kılavuzu, Kubernetes kavramlarını temel olarak anlamayı varsayar. Daha fazla bilgi için bkz . Kubernetes temel kavramları.

Başlamadan önce

Aşağıdaki önkoşullara sahip olduğunuzu doğrulayın:

  • En az bir Linux çalışan düğümü bulunan ve çalışır durumda olan bir AKS kümesi.
  • Kümeye erişmek için bir kubeconfig dosyası.
  • AksHci PowerShell modülü yüklenir. Daha fazla bilgi için bkz . Install-AksHci.

Yordamları gerçekleştirdiğinizde:

  • Komutları yönetici ayrıcalıklarıyla açılan bir PowerShell 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.

Not

Bir ağı başka bir hedef kümeyle paylaşan bir hedef kümenin dağıtılması yük dengeleyici IP adresi çakışmalarına neden olabilir. Aynı AksHciClusterNetwork nesneyi paylaşan hedef kümelerde farklı bağlantı noktaları kullanan iki iş yükü dağıtırsanız IP adresi çakışmaları oluşabilir. IP adreslerinin ve bağlantı noktası eşlemelerinin HA Proxy'si içinde ayrılma şekli nedeniyle, yinelenen IP adreslerinin atanmasına yol açabilir. Bu durumda, iş yüklerinizi yeniden dağıtana kadar bir veya iki iş yükü rastgele ağ bağlantısı sorunlarıyla karşılaşabilir. İş yüklerinizi yeniden dağıtırken, her iş yüküne bir hizmet IP adresi atayan aynı bağlantı noktasını kullanabilir veya farklı nesneler kullanan AksHciClusterNetwork hedef kümelerde iş yüklerinizi yeniden dağıtabilirsiniz.

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 öğreticide, Azure vote uygulamasını çalıştırmak için gereken tüm nesneleri oluşturmak için bir bildirim kullanılır. Bu bildirim iki Kubernetes dağıtımı içerir: biri örnek Azure Vote Python uygulamaları için, diğeri redis örneği için. İki Kubernetes hizmeti de oluşturulur: Redis örneği için bir iç hizmet ve Azure Vote uygulamasına İnternet'ten erişmek için bir dış hizmet.

azure-vote.yaml adlı bir dosya oluşturun ve aşağıdaki YAML tanımını kopyalayıp yapıştırın:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: azure-vote-back
spec:
  replicas: 1
  selector:
    matchLabels:
      app: azure-vote-back
  template:
    metadata:
      labels:
        app: azure-vote-back
    spec:
      nodeSelector:
        "beta.kubernetes.io/os": linux
      containers:
      - name: azure-vote-back
        image: redis
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 250m
            memory: 256Mi
        ports:
        - containerPort: 6379
          name: redis
---
apiVersion: v1
kind: Service
metadata:
  name: azure-vote-back
spec:
  ports:
  - port: 6379
  selector:
    app: azure-vote-back
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: azure-vote-front
spec:
  replicas: 1
  selector:
    matchLabels:
      app: azure-vote-front
  template:
    metadata:
      labels:
        app: azure-vote-front
    spec:
      nodeSelector:
        "beta.kubernetes.io/os": linux
      containers:
      - name: azure-vote-front
        image: <path to image>/azure-vote-front:v1
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 250m
            memory: 256Mi
        ports:
        - containerPort: 80
        env:
        - name: REDIS
          value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
  name: azure-vote-front
spec:
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: azure-vote-front

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

kubectl apply -f azure-vote.yaml

Aşağıdaki örnek çıktı, başarıyla oluşturulan dağıtımları ve hizmetleri gösterir:

deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" 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.

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

kubectl get service azure-vote-front --watch

Başlangıçta, azure-vote-front hizmeti için EXTERNAL-IP beklemede olarak gösterilir:

NAME               TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
azure-vote-front   LoadBalancer   10.0.37.27      <pending>     80:30572/TCP   22m

EXTERNAL-IP adresi beklemedengerçek bir genel IP adresine değiştiğinde, izleme işlemini durdurmak için CTRL-Ckubectl. 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
azure-vote-front   LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   24m

Azure Vote uygulamasının çalıştığını görmek için hizmetinizin dış IP adresine bir web tarayıcısı açın.

Azure'da bir Kubernetes kümesine dağıtılan Azure Voting App uygulamasının giriş sayfasının ekran görüntüsü.

Uygulama podlarını ölçeklendirme

Azure Voting Uygulaması ön ucu ve Redis örneğinin tek bir çoğaltmasını oluşturduk. Kümenizdeki podların sayısını ve durumunu görmek için komutunu kubectl get kullanın:

kubectl get pods -n default

Aşağıdaki örnek çıktıda bir ön uç podu ve bir arka uç podu gösterilmektedir:

NAME                                READY     STATUS    RESTARTS   AGE
azure-vote-back-6bdcb87f89-g2pqg    1/1       Running   0          25m
azure-vote-front-84c8bf64fc-cdq86   1/1       Running   0          25m

azure-vote-front dağıtımındaki kubectl scale Aşağıdaki örnekte ön uç podlarının sayısı 5'e çıkarılmaktadır:

kubectl scale --replicas=5 deployment/azure-vote-front

Ek 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
Name                                READY   STATUS    RESTARTS   AGE
azure-vote-back-6bdcb87f89-g2pqg    1/1     Running   0          31m
azure-vote-front-84c8bf64fc-cdq86   1/1     Running   0          31m
azure-vote-front-84c8bf64fc-56h64   1/1     Running   0          80s
azure-vote-front-84c8bf64fc-djkp8   1/1     Running   0          80s
azure-vote-front-84c8bf64fc-jmmvs   1/1     Running   0          80s
azure-vote-front-84c8bf64fc-znc6z   1/1     Running   0          80s

Sonraki adımlar

Kümenizi ve uygulamanızı izlemek için Azure İzleyici'yi kullanma