Hızlı Başlangıç: Azure CLI Azure Kubernetes Service küme dağıtma

Azure Kubernetes Service (AKS), kümeleri hızlı bir şekilde dağıtma ve yönetmenizi sağlayan yönetilen bir Kubernetes hizmetidir. Bu hızlı başlangıçta şunları yapmak için:

  • Azure CLI kullanarak AKS kümesi dağıtma.

  • Kümede bir web ön uç ve bir Redis örneği ile çok kapsayıcılı bir uygulama çalıştırın.

  • Kümenin ve uygulamanızı çalıştıran podların durumunu izleme.

    Azure Kubernetes Service'da dağıtılan oylama uygulaması

Bu hızlı başlangıç, Kubernetes kavramlarının temel olarak bilindiğini varsayar. Daha fazla bilgi için bkz. Azure Kubernetes Service (AKS) için Kubernetes temel kavramları.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Windows Server düğüm havuzu oluşturma hakkında daha fazla bilgi edinmek için bkz. Sunucu kapsayıcılarını destekleyen Windows AKS kümesi oluşturma.

Önkoşullar

  • Azure Cloud Shell'Da Bash ortamını kullanın.

    Cloud Shell’i yeni bir pencerede başlatma

  • Dilerseniz CLI başvuru komutlarını çalıştırmak için Azure CLI’yi yükleyebilirsiniz.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Ek oturum açma seçenekleri için bkz. Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantılarını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

  • Bu makale, Azure CLI'nin 2.0.64 veya daha yeni bir sürümünü gerektirir. Bu Azure Cloud Shell, en son sürüm zaten yüklüdür.
  • Kümenizi oluşturmak için kullanmakta olduğunu kimlik uygun minimum izinlere sahip. AKS'ye erişim ve kimlik hakkında daha fazla bilgi için bkz. Azure Kubernetes Service (AKS) için erişim ve kimlik seçenekleri.

Not

Bu hızlı başlangıçtaki komutları yerel olarak değil de yerel olarak çalıştırmayı planlıyorsanız, komutları yönetici Azure Cloud Shell.

Kaynak grubu oluşturma

Azure kaynak grubu, Azure kaynaklarının dağıtılacağı ve yönetil olduğu bir mantıksal gruptır. Bir kaynak grubu 7.000.000'den sonra bir konum belirtmeniz istenir. Bu konum:

  • Kaynak grubu meta verinizin depolama konumu.
  • Kaynak oluşturma sırasında başka bir bölge belirtmezseniz kaynaklarınızı Azure'da çalıştırabilirsiniz.

Aşağıdaki örnek eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturur.

az group create komutunu kullanarak bir kaynak grubu oluşturun.

az group create --name myResourceGroup --location eastus

Başarıyla oluşturulan kaynak grubunun çıktısı:

{
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
  "location": "eastus",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Küme izlemeyi etkinleştirme

Microsoft.OperationsManagement ve Microsoft.OperationalInsights'ın aboneliğinize kayıtlı olduğunu doğrulayın. Kayıt durumunu kontrol etmek için:

az provider show -n Microsoft.OperationsManagement -o table
az provider show -n Microsoft.OperationalInsights -o table

Kayıtlı değilse, şunları kullanarak Microsoft.OperationsManagement ve Microsoft.OperationalInsights'ı kaydettirin:

az provider register --namespace Microsoft.OperationsManagement
az provider register --namespace Microsoft.OperationalInsights

AKS kümesi oluşturma

Kapsayıcılar için gerekli özellikleri etkinleştirmek için --enable-addons izleme parametresiyle az aks create komutunu kullanarak Azure İzleyici oluşturun. Aşağıdaki örnek, bir düğüm ile myAKSCluster adlı bir küme oluşturur:

az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 1 --enable-addons monitoring --generate-ssh-keys

Birkaç dakika sonra komut tamamlanır ve küme hakkında JSON biçimli bilgiler döndürür.

Not

AKS kümesi oluşturulduğunda AKS kaynaklarını depolamak için otomatik olarak ikinci bir kaynak grubu oluşturulur. Daha fazla bilgi için bkz. AKS ile neden iki kaynak grubu oluşturuldu?

Kümeye bağlanma

Bir Kubernetes kümesi yönetmek için Kubernetes komut satırı istemcisi olan kubectl 'i kullanın. kubectl zaten yüklü olduğunu Azure Cloud Shell.

  1. kubectlaz aks install-cli komutunu kullanarak yerel olarak yükleyin:

    az aks install-cli
    
  2. az kubectl aks get-credentials komutunu kullanarak Kubernetes kümenize bağlanın. Aşağıdaki komut:

    • Kimlik bilgilerini indirir ve Kubernetes CLI'yi bunları kullanmak üzere yapılandırıyor.
    • ~/.kube/config Kubernetesyapılandırma dosyası için varsayılan konum olan kullanır. --file kullanarak Kubernetes yapılandırma dosyanız için farklı bir konum belirtin.
    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  3. kubectl get komutunu kullanarak kümenize bağlantıyı doğrulayın. Bu komut, küme düğümlerinin listesini döndürür.

    kubectl get nodes
    

    Çıkış, önceki adımlarda oluşturulan tek düğümü gösterir. Düğüm durumunun Hazır olduğundan emin olun:

    NAME                       STATUS   ROLES   AGE     VERSION
    aks-nodepool1-31718369-0   Ready    agent   6m44s   v1.12.8
    

Uygulamayı çalıştırma

Kubernetes bildirim dosyası, çalıştıracak kapsayıcı görüntüleri gibi kümenin istenen durumunu tanımlar.

Bu hızlı başlangıçta, Azure Vote uygulamasını çalıştırmak için gereken tüm nesneleri oluşturmak için bir bildirim kullanacağız. Bu bildirim iki Kubernetes dağıtımı içerir:

  • Örnek Azure Vote Python uygulamaları.
  • Bir Redis örneği.

İki Kubernetes Hizmeti de oluşturulur:

  • Redis örneği için bir iç hizmet.
  • Azure Vote uygulamasına internetten erişmek için bir dış hizmet.
  1. azure-vote.yaml adlı bir dosya oluşturun.

    • Bu dosya, Azure Cloud Shell veya bir sanal ya da fiziksel sistem üzerinde çalışıyor gibi kullanılarak code vi nano oluşturulabilir
  2. Aşağıdaki YAML tanımına kopyalayı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:
            "kubernetes.io/os": linux
          containers:
          - name: azure-vote-back
            image: mcr.microsoft.com/oss/bitnami/redis:6.0.8
            env:
            - name: ALLOW_EMPTY_PASSWORD
              value: "yes"
            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:
            "kubernetes.io/os": linux
          containers:
          - name: azure-vote-front
            image: mcr.microsoft.com/azuredocs/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
    
  3. kubectl apply komutunu kullanarak uygulamayı dağıtın ve YAML bildiriminizin adını belirtin:

    kubectl apply -f azure-vote.yaml
    

    Çı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 edin

Uygulama çalıştır geldiğinde, Kubernetes hizmeti uygulamanın ön ucundaki İnternet'i ortaya çıkarır. Bu işlemin tamamlanması birkaç dakika sürebilir.

kubectl get service komutunu bağımsız değişkeniyle kullanarak ilerleme durumunu --watch izleme.

kubectl get service azure-vote-front --watch

Hizmetin EXTERNAL-IP çıkışı azure-vote-front başlangıçta beklemede olarak gösterir.

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

EXTERNAL-IP adresi beklemede olan gerçek bir IP adresine değiştiktan sonra izleme işlemini durdurmak CTRL-C için kubectl kullanın. Aşağıdaki örnek çıktı, hizmete atanmış geçerli bir genel IP adresini gösterir:

azure-vote-front   LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   2m

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

Azure Kubernetes Service'da dağıtılan oylama uygulaması

Küme düğümlerinin ve podların sistem durumu ölçümlerini, Azure İzleyici kümedeki kapsayıcılar için Azure portal.

Küme silme

Azure ücretlerini önlemek için gereksiz kaynaklarınızı temizleyin. az group delete komutunu kullanarak kaynak grubunu, kapsayıcı hizmetini ve ilgili tüm kaynakları kaldırabilirsiniz.

az group delete --name myResourceGroup --yes --no-wait

Not

Kümeyi sildiğinizde, AKS kümesi tarafından kullanılan Azure Active Directory hizmet sorumlusu kaldırılmaz. Hizmet sorumlusunu kaldırma adımları için bkz. AKS hizmet sorumlusuyla ilgili önemli noktalar ve silme.

Yönetilen kimlik kullandıysanız, kimlik platform tarafından yönetilir ve kaldırılmasını gerektirmez.

Kodu alma

Bu hızlı başlangıçta kubernetes dağıtımı oluşturmak için önceden var olan kapsayıcı görüntüleri kullanılmıştır. İlgili uygulama kodu, Dockerfile ve Kubernetes bildirim dosyası GitHub.

Sonraki adımlar

Bu hızlı başlangıçta bir Kubernetes kümesi dağıttın ve ardından bu kümeye çok kapsayıcılı bir uygulama dağıttın. AKS kümenizin Kubernetes web panosuna erişin.

AKS hakkında daha fazla bilgi ve dağıtım örneği için tam kod açıklaması için Kubernetes küme öğreticisine geçin.