Alıştırma - Azure Kubernetes Service kümenizde uygulama dağıtma

Tamamlandı

Bu alıştırmada, şirketinizin arka uç mesajlaşma hizmetini Azure Kubernetes Service'e (AKS) test uygulaması olarak dağıtacaksınız. Hizmet, önceki alıştırmada oluşturduğunuz Redis PaaS hizmetine bağlanır.

Not

Hizmetin kodu GitHub deposundamevcuttur.

Redis'te liste oluşturma

Redis'te bir liste oluşturmanız ve verileri alan bir kuyruğun benzetimini yapmak için listeyi bazı rastgele öğelerle doldurmanız gerekir. Kuyruktaki her öğe, mikro hizmetin işleyecekleri bir şeyi temsil eder. Bu alıştırmada statik sayıda öğe ekleyeceksiniz. Alıştırmanın ilerleyen bölümlerinde mikro hizmeti kuyruktaki öğe sayısına ölçeklendireceksiniz.

  1. Docker'ın bilgisayarınızda çalıştığından emin olun.

  2. docker run komutunu kullanarak Redis için Azure Cache'inize bağlanmak için yerel olarak bir Redis kapsayıcısı oluşturun:

    docker run -it --rm redis redis-cli -h $REDIS_HOST -a $REDIS_KEY
    

    Çıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:

    redis-contoso-video.redis.cache.windows.net:6379>
    
  3. lpush keda komutunu kullanarak bir liste oluşturun ve rastgele öğelerle doldurun:

    lpush keda Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eget interdum felis, ac ultricies nulla. Fusce vehicula mattis laoreet. Quisque facilisis bibendum dui, at scelerisque nulla hendrerit sed. Sed rutrum augue arcu, id maximus felis sollicitudin eget. Curabitur non libero rhoncus, pellentesque orci a, tincidunt sapien. Suspendisse laoreet vulputate sagittis. Vivamus ac magna lacus. Etiam sagittis facilisis dictum. Phasellus faucibus sagittis libero, ac semper lorem commodo in. Quisque tortor lorem, sollicitudin non odio sit amet, finibus molestie eros. Proin aliquam laoreet eros, sed dapibus tortor euismod quis. Maecenas sed viverra sem, at porta sapien. Sed sollicitudin arcu leo, vitae elementum
    
  4. llen keda komutunu kullanarak listenin uzunluğunu doğrulayın:

    llen keda
    
  5. exityazarak Redis kabuğundan çıkın.

Dağıtım bildirimi oluşturma

Uygulamanızı dağıtmak için bir Dağıtım bildirim dosyası oluşturursunuz. Bildirim dosyası, dağıtmak istediğiniz kaynak türünü ve iş yüküyle ilişkili ayrıntıları tanımlamanızı sağlar.

Kubernetes, kapsayıcıları, zekası olmayan podlar olarak adlandırılan mantıksal yapılarda gruplandırır. Dağıtımlar, uygulamanızı geliştirmek için eksik olan zekâyı sağlar.

  1. Cloud Shell'de touch komutunu kullanarak Kubernetes Dağıtımı için deployment.yaml adlı bir bildirim dosyası oluşturun:

    touch deployment.yaml
    
  2. code . girerek Cloud Shell'de tümleşik düzenleyiciyi açın

  3. deployment.yaml dosyasını açın ve aşağıdaki bildirim kodunu yapıştırın. Redis ortam değişkenlerini kendi değerlerinizle değiştirdiğinden emin olun.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: contoso-microservice
    spec:
      replicas: 1                   # Tells K8S the number of containers to process the Redis list items
      selector:                     # Define the wrapping strategy
        matchLabels:                # Match all pods with the defined labels
          app: contoso-microservice # Labels follow the `name: value` template
      template:                     # Template of the pod inside the Deployment
        metadata:
          labels:
            app: contoso-microservice
        spec:
          containers:
            - image: mcr.microsoft.com/mslearn/samples/redis-client:latest
              name: contoso-microservice
              resources:
                requests:
                  cpu: 100m
                  memory: 128Mi
                limits:
                  cpu: 100m
                  memory: 128Mi
              env:
                - name: REDIS_HOST
                  value: "redis-contoso-video.redis.cache.windows.net" # *** REPLACE with your value ***
                - name: REDIS_PORT
                  value: "6379"                                        # *** REPLACE with your value ***
                - name: REDIS_LIST
                  value: "keda"                                        # *** REPLACE with your value ***
                - name: REDIS_KEY
                  value: "******************************************"  # *** REPLACE with your value ***
    
  4. Bildirim dosyasını (CTRL + S) kaydedin ve düzenleyiciyi kapatın(CTRL + Q).

Manifesti uygulama

  1. kubectl apply komutunu kullanarak bildirimi kümenize dağıtın:

    kubectl apply -f ./deployment.yaml
    

    Çıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:

    deployment.apps/contoso-microservice created
    
  2. kubectl get deployment komutunu kullanarak dağıtımın başarılı olduğunu doğrulayın:

    kubectl get deployment contoso-microservice
    

    Çıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:

    NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
    contoso-microservice   1/1     1            0           16s
    
  3. kubectl get pods komutunu kullanarak pod'un çalıştığını doğrulayın:

    kubectl get pods
    

    Çıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:

    NAME                                    READY   STATUS    RESTARTS   AGE
    contoso-microservice-7c58c5f699-r79mv   1/1     Running   0          63s