Yazılım Geliştiriciler için Azure: Azure Kubernetes Service (AKS) – Bölüm 3
  1. Anasayfa
  2. Container

Yazılım Geliştiriciler için Azure: Azure Kubernetes Service (AKS) – Bölüm 3

0

İlk bölümde Azure Portal üzerinde bir Kubernetes servis oluşturup nasıl monitor edebileceğimizi incelemiş, ikinci bölümde ise Kubernetes dashboard’a erişmek için gerekli işlemleri ve Azure Container Registry (ACR) üzerinden container imajı çekebilmek için yetkilendirme yapmıştık. Bu bölümde de oluşturduğumuz ACR üzerinde yer alan container imajımız ile AKS’e deployment yapacağız. Bu kez ASP.NET Core MVC yerine 5001 portundan çalışan ve hostname değerini gösteren bir basit node.js uygulaması üzerinden ilerleyeceğiz.

Öncelikle index.js adında bir dosya oluşturup Resim-1‘de göreceğiniz gibi 8 satırdan oluşan basit bir “Hello World” kodu yazıyoruz. Command prompt üzerinden index.js dosyasının bulunduğu klasörde node index.js komutunu çalıştırdıktan sonra tarayıcı üzerinden http://localhost:5001 adresine giderek uygulamayı test edebilirsiniz. Eğer bilgisayarınızda node.js kurulu değilse buradan kurabilirsiniz.

NOT: Örneğe ait kodların tamamına buradan ulaşabilirsiniz.

Resim-1

Uygulamamamızın container imajını hazırlamak için ise Resim-2‘de yer alan dockerfile’ı kullanıyoruz. Dosya içeriğinde de göreceğiniz üzere base image olarak node’un güncel sürümünü kullanacağız. Çalışma klasörünü usr/src/app olarak belirledikten sonra Resim-1‘de yer alan kodları (index.js) bu klasöre kopyalayıp, 5001 portunu açıyoruz. Son olarak da node komutuna parametre olarak index dosyamızı veriyoruz.

Resim-2

Dockerfile kullanarak container imajını oluşturduktan sonra ACR üzerine push etmemiz gerekiyor. Azure üzerinde ACR nasıl oluşturulur ve container imajı nasıl push edilir konusunda detaylı bilgi için buraya bakabilirsiniz.

ACR’a container imajımızı push ettikten sonra, AKS üzerinde deployment için bir yaml dosyasını hazırlıyoruz. Burada deployment için kullanılacak container imajı ile ilgili detayları ve load balancer tipinde bir de servis tanımlıyoruz (Resim-3). Container’dan 2 replika oluşturacağız ve bu servis ile 80 portuna gelen istekleri yük dengelemesi ile replikaların 5001 portuna yönlendireceğiz.


Resim-3

Yaml dosyasını tamamladıktan sonra kubectl apply komutunu -f (filename) parametresi ile yaml dosyamızı belirtip Azure CLI yardımıyla deployment’ı yapıyoruz (Resim-4).

Resim-4

kubetctl get svc ile servisin durumunu kontrol ettiğimizde external IP değerini henüz alamadığını göreceksiniz. Bu işlem biraz zaman alacak, 1-2 dakika bekleyip tekrar denerseniz external IP değerinin atandığını görebilirsiniz (Resim-5).

Resim-5

External IP’ye tarayıcı üzerinden 80 portu kullanarak erişmeye çalıştığınızda Resim-6‘da göreceğiniz gibi container içerisindeki node.js uygulamamızın çalıştığını görebilirsiniz.

Resim-6

Sayfayı yenilerseniz ya da farklı bir tab üzerinden aynı adrese istek gönderirseniz bu kez de diğer container’a gittiğinizi görebilirsiniz (Resim-7).

Resim-7

AKS Kubernetes dashboard üzerinden de yaptığımız deployment’a ait bilgileri görebilirsiniz (Resim-8).

Resim-8

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://nodejs.org/en/docs/

https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

https://github.com/mertyeter/hellonode

TAGs: Azure, Azure Portal, Yazılım Geliştiriciler için Azure, Azure Kubernetes Service, AKS, Containers, Kubernetes, PowerShell, Kubernetes Dashboard, Azure Container Registry, ACR, Azure CLI, Kubectl, Node.js

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    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