1. Ana Sayfa
  2. Container
  3. Yazılım Geliştiriciler için Azure: Azure VM Üzerine Traefik Kurulumu

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

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

Azure VM Üzerine Kubernetes (MicroK8s) Kurulumu yazımızda Azure üzerinde kurduğumuz bir Server 18.04 LTS VM üzerine kurulumu gerçekleştirmiştik. Bu yazıda da aynı VM üzerine bir de container’lar için yük dengeleme ve olarak kullanabileceğimiz Trafik kurulumu yapacağız. Traefik, 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 ile yapacağımız için öncelikle 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 ’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 ü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) Ü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ı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda 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, , Kubernetes, k8s, MicroK8s, Docker, , Linux, Ubuntu, , , ClusterIP, Kubernetes Dashboard, Helm, Traefik, Ingress, Reverse Proxy, Load Balancing

Yorum Yap

Yazar Hakkında

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi Gemi İnşaatı Mühendisliği bölümünde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi Bilgi Teknolojileri bölümü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. Şu anda da Done'de Cloud Development Manager olarak Azure, .NET Core, SQL Server, Docker vb güncel teknolojiler üzerinde çalışmaktadır.

Yorum Yap