Alıştırma - Azure Kubernetes Service kümenize uygulama dağıtma
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 deposunda kullanılabilir.
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.
Docker'ın bilgisayarınızda çalıştığından emin olun.
komutunu kullanarak Redis için Azure Cache bağlanmak için yerel olarak bir Redis kapsayıcısı
docker run
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>
Bir liste oluşturun ve komutunu kullanarak
lpush keda
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
komutunu kullanarak
llen keda
listenin uzunluğunu doğrulayın:llen keda
yazarak
exit
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ı podlar olarak adlandırılan ve zeka içermeyen mantıksal yapılarda gruplandırır. Dağıtımlar, uygulamanızı oluşturmak için eksik olan zekayı ekler.
Cloud Shell'de Kubernetes Dağıtımı için komutunu kullanarak
touch
adlıdeployment.yaml
bir bildirim dosyası oluşturun:touch deployment.yaml
Cloud Shell’de
code .
yazarak tümleşik düzenleyiciyi açındeployment.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 ***
Bildirim dosyasını (CTRL + S) kaydedin ve düzenleyiciyi (CTRL + Q) kapatın.
Bildirimi uygulama
Komutunu kullanarak bildirimi kümenize dağıtın
kubectl apply
:kubectl apply -f ./deployment.yaml
Çıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:
deployment.apps/contoso-microservice created
Komutunu kullanarak
kubectl get deployment
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
Komutunu kullanarak pod'un
kubectl get pods
ç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