Yazılım Geliştiriciler için Azure : Visual Studio Code ile Azure Üzerinde Container İşlemleri – Bölüm 4 (AKS Debugging)

aksk

Üçüncü bölümde Azure Kubernetes Service (AKS) üzerinde yer alan Kubernetes cluster’ı VS Code’ ekleyerek örnek uygulamayı deploy etmiştim. Bu bölümde ise bu uygulamayı AKS üzerinden VS Code ile nasıl debug edeceğimizden bahsedeceğim.

Eklediğimiz AKS cluster’da Workloads/Pods altında yer alan pod’lardan herhangi birine sağ tıkladığımda menüde Debug (Attach) seçeneği dikkatinizi çekecektir. Bu seçeneğe tıklayarak debug session’I başlatmak istiyorum (Resim-1).

Resim-1

Benden debug etmek istediğim uygulamanın hangi environment’ta çalışacağını soruyor, nodejs seçip devam ediyorum (Resim-2).

Resim-2

Buraya kadar her şey normal, ama Resim-3’te de göreceğiniz gibi attach olacağı debug port’unu bulamadığına dair bir hata mesajı ile karşılaşıyorum (Resim-3).

Resim-3

Ctrl+Shift+P ile VS Code command palette’i açıp Resim-4‘te göreceğiniz gibi Open Workspace Settings (JSON) seçeceğini seçiyorum.

Resim-4

Gelen settings.json dosyası içerisine Resim-5‘te göreceğiniz gibi “vsdocker.imageUser”: “<Azure Container Service ismi>” şeklinde bir ekleme yapıyorum.

Resim-5

Yine command palette üzerinde Kubernetes yazdığımda bu kez Debug (Launch) diye bir seçenek çıkıyor (Resim-6).

Launch ve Attach arasındaki fark kısaca şu şekilde:

  • Kubernetes: Debug (Launch) – Uygulamayı bir Kubernetes deployment olarak çalıştırıp buna debug session bağlamak için kullanabilirsiniz; Java, NodeJS ve Python desteği bulunuyor.
  • Kubernetes: Debug (Attach) Mevcut bir Kubernetes Deployment’a bir debug session bağlamak için kullanılıyor; .NET, Java, NodeJS, Python ve NodeJS desteğ bulunuyor.

Resim-6

Launch ile devam ediyorum, environment olarak nodejs seçiyorum (Resim-7).

Resim-7

Debug için bir inspector eklemem gerekiyor, node –inspect index.js olarak yazıp Enter’a basıyorum (Resim-8).

Resim-8

Önceki bölümlerden hatırlarsanız (ya da okuma fırsatınız olduysa) Docker Desktop çalışır halde değildi. Resim-9‘da göreceğiniz hata mesajından da anlaşılacağı üzere container imajını build etmek için local’deki docker engine’e bağlanmaya çalışıyor ve çalışan bir docker engine olmadığı için de bu hatayı veriyor.

Resim-9

Docker Desktop’ı başlatıp tekrar Debug (Launch) işlemlerini yaptıktan sonra ise Resim-10‘da göreceğiniz gibi artık sorunsuz bir şekilde debug session’ı oluşturduğunu görebiliyorum.

Resim-10

Tarayıcı üzerinden http://localhost:5001 adresine gittiğimde ise Resim-11 ve Resim-12‘de göreceğiniz gibi uygulamanın çalıştığını ve VS Code üzerinde breakpoint’e de düştüğünü görebiliyorum.

Resim-11

Resim-12

Buraya kadar her şey güzel, ancak başlangıçta Debug (Launch) değil Debug (Attach) olarak başlamıştık. Bu debug session’ı sonlandırıp tekrar Debug (Attach)’i tekrar deneyelim. Bu kez Resim-13’te göreceğiniz gibi uygulamanın debug edilmeye hazır olduğu mesajını aldım (Resim-13).

Resim-13

AKS’in external IP adresini Resim-14‘te göreceğiniz gibi kubectl get all komutu ile öğrendikten sonra (kubectl için alias tanımlı olduğundan k yazmam yeterli) tarayıcıya bu IP adresini yazarak VS Code üzerindeki breakpoint’e düştüğünü görebilirsiniz.

Resim-14

Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

https://docs.microsoft.com/en-gb/azure/aks/

https://github.com/Azure/vscode-kubernetes-tools/blob/master/debug-on-kubernetes.md

https://github.com/mertyeter/hellonode

TAGs: Azure, Azure Portal, Yazılım Geliştiriciler için Azure, Azure Container Registry, ACR, Docker, Containers, Dockerfile, Linux, NodeJS, Visual Studio, Visual Studio Code, VSCode, VS Code, Kubernetes, k8s, Azure Kubernetes Service, AKS

Yazı gezinmesi

Mobil sürümden çık