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

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

0

Üçü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

Bu İçeriğe Tepkin Ne Oldu?
  • 3
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi'nde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi'nde tamamlamıştır. Yazılım dünyasına üniversitenin ilk yıllarında aldığı QBasic ile başlayan Mert, .NET ve SQL Server gibi Microsoft teknolojileri ile devam etmiş; yüksek lisans tezini ise Linux konusunda yapmıştır. Netaş ve Ziraat Teknoloji gibi sektörün önde gelen firmalarında C#, .NET, SQL Server, Cisco Contact Center ürünleri ve Linux üzerine çalışmış, bir çok firmaya da bu konularda danışmanlık vermiştir.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir