Yazılım Geliştiriciler için Azure: Azure VM Üzerine Traefik Kurulumu
0

Azure VM Üzerine Kubernetes (MicroK8s) Kurulumu yazımızda Azure üzerinde kurduğumuz bir Ubuntu Server 18.04 LTS VM üzerine MicroK8s kurulumu gerçekleştirmiştik. Bu yazıda da aynı VM üzerine bir de container’lar için yük dengeleme ve reverse proxy olarak kullanabileceğimiz Trafik kurulumu yapacağız. Traefik, reverse proxy olarak kullanılan NGINX’ten farklı olarak deploymentlarınızda otomatik olarak kendini güncelleyebilen ve sizi tekrar tekrar konfigurasyon değişikliği yapmadan kullanabileceğiniz açık kaynak bir ürün (Enterprise Edition’I da bulunuyor) olarak özetlenebilir.

Kubernetes üzerinde bir Ingress controller olarak tanımlayacağımız Traefik, Resim-1‘de yer alan görsel ile daha anlaşılır olacaktır. Internet üzerinden gelen request’leri API’larınız, web uygulamaları ve admin ya da backoffice diyebileceğimiz diğer web uygulmaları için farklı container’lara yönlendirme yapabilirsiniz. Ayrıca bir yük dengeleme ihtiyacınız varsa (backoffice örneği) bunu da sağlayabiliyor (varsayılan olarak weighted round robin kullanıyor).

Resim-1

Kurulumu helm ile yapacağımız için öncelikle helm kurmamız gerekiyor. Piyasada farklı isimlerde birçok package manager var ancak işimizi oldukça kolaylaştırdıkları için çok da şikayet edemiyorum. :) Resim-2‘de göreceğiniz gibi sudo snap install helm –classic komutu ile kurulumu yaptıktan sonra helm init komutu ile gerekli klasörleri oluşturup repoları eklemesini sağlıyoruz.

Resim-2

Helm kurulumu tamamladıktan sonra sırada Traefik kurulumu var. Kurulum komutu helm install stable/traefik gibi kısa olsa da birkaç parametre belirtmemiz gerekiyor. Bunlardan ilki container’a rastgele bir isim vermesindense daha anlaşılır bir isim vermek isteyenler için –name parametresi, diğeri de dashboard’u aktif hale getirmek ve dashboard erişimi için gerekli olan domain bilgisini belirlediğimiz –set parametresi. Resim-3’te göreceğiniz üzere kurulum komutumuzun son hali şu şekilde:

$ helm install stable/traefik –name=my-traefik –set=dashboard.enabled=true,dashboard.domain=mshowtok8s.westeurope.cloudapp.azure.com

Resim-3

Resim-2‘den fark ettiğiniz üzere Traefik de container üzerinde çalışıyor. Detaylı olarak incelemek için Kubernetes Dashboard’u açalım. Ancak servis tanımlarının olduğu ekranda Traefik dashboard hazır olmasına rağmen servisin henüz tamamlanamadığı gibi bir görüntü var (Resim-4).

Resim-4

Terminal üzerinden kubectl get svc komutu ile servislere baktığımızda my- traefik servisinin external ip almak için beklediğini görüyoruz.

Resim-5

External IP değerini alamadığı için biz de kendimiz vererek sorunu çözmeye çalışalım. Resim-6‘da göreceğiniz gibi Azure Portal üzerinden Virtual network/Overview altından ya da terminal üzerinden ifconfig komutu ile mevcut IP adresini öğreniyoruz. Burada dikkat etmemiz gereken kısım makinenin public IP adresini kullanmamış olmamız.

Resim-6

Kubernetes Dashboard üzerinden my- traefik servisini Edit komutu ile açıp Resim-7‘de göreceğiniz yere externalIPs altına IP adresimizi ekliyoruz.

Resim-7

Update’e tıkladıktan sonra servisin external IP aldığını ve yeşil tik işaretinin my-traefik servisi için de çıktığını göreceksiniz. 80 portundan VM’e ait dns adresine gidersek Resim-8’de göreceğiniz gibi /dashboard olarak yönlendirecek ve Traefik Dashboard açılacak. Hatırlarsanız (ya da henüz okumamış olabilirsiniz) Azure VM Üzerine Kubernetes (MicroK8s) Kurulumu yazımızda Kubernetes Dashboard’a node port üzerinden erişim sağlamıştık.

Dashboard üzerinde de göreceğiniz gibi host üzerine gelen isteği backend tarafında tanımlı container’a yönlendiriyor. Aslında dashboard için de kendisini kullanıyor diyebiliriz. Mevcutta bir container olduğu için sağ tarafta da bir container göreceksiniz. Eğer birden fazla container içeren bir deployment yaparsanız bütün containerları görebilirsiniz.

Resim-8

Traefik’in en güzel tarafı ise farlı bir deployment yaptığınız zaman bunu sayfayı yenilemeden bile dashboard üzerinde görebilmeniz (Resim-9).

Resim-9

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

Referanslar

www.mshowto.org

https://docs.traefik.io/

https://medium.com/@geraldcroes/kubernetes-traefik-101-when-simplicity-matters-957eeede2cf8

TAGs: Azure, Azure Portal, Azure VM, Yazılım Geliştiriciler için Azure, Kubernetes, k8s, MicroK8s, Docker, Containers, Linux, Ubuntu, LoadBalancer, NodePort, ClusterIP, Kubernetes Dashboard, Helm, Traefik, Ingress, Reverse Proxy, Load Balancing

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