Öğretici - Azure Kubernetes Service'e (AKS) uygulama dağıtma
Kubernetes, kapsayıcılı uygulamalar için dağıtılmış bir platform sunar. Kendi uygulamalarınızı ve hizmetlerinizi bir Kubernetes kümesine derleyip dağıtır ve kullanılabilirliği ve bağlantıyı kümenin yönetmesine izin verirsiniz.
Yedinin dördüncü bölümü olan bu öğreticide kubernetes kümesine örnek bir uygulama dağıtacaksınız. Şunları yapmayı öğreneceksiniz:
- Kubernetes bildirim dosyasını güncelleştirin.
- Kubernetes'te bir uygulama çalıştırın.
- Uygulamayı test edin.
İpucu
AKS ile yapılandırma yönetimi için aşağıdaki yaklaşımları kullanabilirsiniz:
GitOps: Kümenizin durumuna ilişkin bildirimlerin kümeye otomatik olarak uygulanmasını sağlar. Aks kümesiyle uygulama dağıtmak için GitOps'u kullanmayı öğrenmek için Flux v2 ile GitOps öğreticisindeki Azure Kubernetes Service kümelerinin önkoşullarına bakın.
DevOps: Sürekli tümleştirme (CI) ve sürekli teslim (CD) ile derlemenizi, test edip dağıtmanızı sağlar. Aks kümesiyle uygulama dağıtmak için DevOps kullanma örneklerini görmek için bkz. Kubernetes'e dağıtmak için Azure Pipelines veya GitHub Actions ile AKS'ye derleme ve dağıtma.
Başlamadan önce
Önceki öğreticilerde bir uygulamayı kapsayıcı görüntüsüne paketlediyseniz, görüntüyü Azure Container Registry'ye yüklediyseniz ve bir Kubernetes kümesi oluşturdunuz. Bu öğreticiyi tamamlamak için önceden oluşturulmuş aks-store-quickstart.yaml
Kubernetes bildirim dosyasına ihtiyacınız vardır. Bu dosya Öğretici 1 - Uygulamayı AKS için hazırlama bölümünden uygulama kaynak koduna indirildi.
Bu öğretici için Azure CLI sürüm 2.0.53 veya üzeri gerekir. ile sürümünüzü az --version
denetleyin. Yüklemek veya yükseltmek için bkz . Azure CLI'yı yükleme.
Bildirim dosyasını güncelleştirme
Bu öğreticilerde Azure Container Registry (ACR) örneğiniz örnek uygulama için kapsayıcı görüntülerini depolar. Uygulamayı dağıtmak için Kubernetes bildirim dosyasındaki görüntü adlarını ACR oturum açma sunucunuzun adını içerecek şekilde güncelleştirmeniz gerekir.
Oturum açma sunucunuz için komutunu ve sorgusunu
az acr list
kullanarak oturum açma sunucusu adresinizi alın.az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table
Kopyalanan aks-store-demo dizininde olduğunuzdan emin olun ve bildirim dosyasını bir metin düzenleyicisiyle açın
aks-store-quickstart.yaml
.image
ghcr.io/azure-samples yerine ACR oturum açma sunucusu adınızı yazarak kapsayıcıların özelliğini güncelleştirin.containers: ... - name: order-service image: <acrName>.azurecr.io/aks-store-demo/order-service:latest ... - name: product-service image: <acrName>.azurecr.io/aks-store-demo/product-service:latest ... - name: store-front image: <acrName>.azurecr.io/aks-store-demo/store-front:latest ...
Dosyayı kaydedip kapatın
Uygulamayı çalıştırma
Bildirim dosyasını ayrıştıran ve tanımlı Kubernetes nesnelerini oluşturan komutunu kullanarak
kubectl apply
uygulamayı dağıtın.kubectl apply -f aks-store-quickstart.yaml
Aşağıdaki örnek çıktı aks kümesinde başarıyla oluşturulan kaynakları gösterir:
statefulset.apps/rabbitmq created configmap/rabbitmq-enabled-plugins created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created
Podları komutuyla
kubectl get pods
görüntüleyerek dağıtımın başarılı olup olmadığını denetleyin.kubectl get pods
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.
Komut Satırı
bağımsız değişkeniyle komutunu
kubectl get service
kullanarak ilerleme durumunu--watch
izleyin.kubectl get service store-front --watch
Başlangıçta,
EXTERNAL-IP
hizmet içinstore-front
olarak gösterilir<pending>
:store-front LoadBalancer 10.0.34.242 <pending> 80:30676/TCP 5s
Adres bir genel IP adresine değiştiğinde
EXTERNAL-IP
izleme işlemini durdurmakkubectl
için kullanınCTRL-C
.<pending>
Aşağıdaki örnek çıktıda hizmete atanmış geçerli bir genel IP adresi gösterilmektedir:
store-front LoadBalancer 10.0.34.242 52.179.23.131 80:30676/TCP 67s
Web tarayıcısı açıp hizmetinizin dış IP adresine giderek uygulamayı iş başında görüntüleyin:
http://<external-ip>
.
Uygulama yüklenmiyorsa, görüntü kayıt defterinizle ilgili bir yetkilendirme sorunu olabilir. Kapsayıcılarınızın durumunu görüntülemek için kubectl get pods
komutunu kullanın. Kapsayıcı görüntülerini çekemiyorsanız bkz . Azure Kubernetes Service'ten Azure Container Registry ile kimlik doğrulaması yapma.
Azure portal
Dağıtım bilgilerinizi bulmak için Azure portalına gidin.
AKS küme kaynağınıza gidin.
Hizmet menüsünde, Kubernetes Kaynakları'nın altında Hizmetler ve girişler'i seçin.
Hizmetin sütununda gösterilen Dış IP'yi
store-front
kopyalayın.Mağaza sayfanızı ziyaret etmek için TARAYıCıNıZA IP'yi yapıştırın.
Kaynakları temizleme
Uygulamanın işlevselliğini doğruladığınız için artık kümeyi uygulamadan kaldırabilirsiniz. Sonraki öğreticide uygulamayı yeniden dağıtacağız.
komutunu kullanarak
kubectl delete
kapsayıcı örneklerini ve kaynaklarını durdurun ve kaldırın.kubectl delete -f aks-store-quickstart.yaml
komutunu kullanarak
kubectl get pods
tüm uygulama podlarının kaldırılıp kaldırılmadığını denetleyin.kubectl get pods
Sonraki adımlar
Bu öğreticide AKS'deki kubernetes kümesine örnek bir Azure uygulaması dağıttınız. Şunları öğrendiniz:
- Kubernetes bildirim dosyasını güncelleştirin.
- Kubernetes'te bir uygulama çalıştırın.
- Uygulamayı test edin.
Sonraki öğreticide Kubernetes'te durum bilgisi olan iş yükleri için PaaS hizmetlerini kullanmayı öğreneceksiniz.
Azure Kubernetes Service