Installing Cilium and Hubble CLI
Elinde hali hazırda kurulmuş, sunucuları (Node'ları) olan bir Kubernetes cluster'ı var(varsayıyorum). Ancak bu cluster şu an "kör ve sağır" durumda. İçindeki Pod'lar birbirleriyle iletişim kuramıyor, IP adresleri yok. Çünkü Kubernetes'in içinde standart olarak bir ağ altyapısı (CNI) bulunmaz; bunu senin dışarıdan kurman gerekir.
İşte biz bu boş cluster'a, piyasadaki en gelişmiş ağ ve güvenlik aracı olan Cilium'u (ve onun izleme aracı olan Hubble'ı) kuracağız.
Bu işlem iki ana aşamadan oluşur:
AŞAMA 1: Kendi Bilgisayarına Kurmak
Uzaktaki Kubernetes cluster'ına Cilium'u yükleyebilmek ve sonrasında ağı yönetebilmek için, kendi bilgisayarına iki küçük terminal aracı (CLI) kurman gerekiyor. Bunlar senin "uzaktan kumandaların" olacak.
(Not: (curl, tar, sha256sum) ile yüklenebiliyor olsa da, MacBook kullanıyorsak bunları brew install cilium-cli hubble gibi çok daha kısa yollarla kurabilirsin)
Cilium CLI (
cilium): Bu araç, uzaktaki cluster'a bağlanıp içine Cilium ağ altyapısını kurmanı, durumunu kontrol etmeni ve "Ağ düzgün çalışıyor mu?" diye test etmeni sağlar.Hubble CLI (
hubble): Bu araç ise, Cilium kurulduktan sonra ağın röntgenini çekmeni sağlar. "Hangi Pod hangi IP'ye gidiyor?", "Bağlantı nerede engellendi?" gibi soruların cevabını canlı olarak terminalinde görmeni sağlayan bir gözlem (observability) aracıdır.
Kendi bilgisayarına bu araçları indirdikten sonra, terminalinde çalıştıklarından emin olmak için versiyonlarını kontrol edebiliriz:
AŞAMA 2: Kubernetes Cluster'ının İçine Cilium'u Yüklemek
Artık bilgisayarındaki kumandalar hazır. Şimdi hedefimiz olan kurulu Kubernetes cluster'ına bağlanıp (bunun için kubectl yetkisine sahip olmalısın), boş duran ağ altyapısını Cilium ile dolduracağız.
1. Cilium'u Enjekte Etmek (Kurulum)
Kendi terminalinden şu komutu çalıştırırsın:
Ne Yapar? Senin bilgisayarındaki Cilium CLI aracı, uzaktaki Kubernetes cluster'ına bağlanır. Oradaki her bir sunucunun (Node'un) içine
cilium-agentadında bir eBPF işçisi yerleştirir.--waitparametresi, bu işçilerin hepsi tam anlamıyla çalışana kadar senin terminalini bekletir.
Terminaline cilium install yazdığında, bu komut sihirli bir şekilde doğru cluster'ı bulmuyor. Senin bilgisayarında çalışan bu Cilium CLI aracı, nereye gideceğini tamamen kubectl'in ayarlarından (Kubeconfig dosyasından) öğreniyor.
Sonuç: Bu komut bittiğinde cluster'ın artık kör ve sağır değildir. Pod'lar anında IP adresi alır ve birbirleriyle ışık hızında (eBPF sayesinde) konuşmaya başlarlar.
Kontrol: Kurulumun sağlıklı olduğunu görmek için
cilium statuskomutunu kullanırsın. (Her şeyin "OK" olması gerekir).
2. Ağı Test Etmek (Her Şey Yolunda Mı?)
Yeni kurduğun ağın gerçekten çalışıp çalışmadığını manuel olarak test etmek yerine, Cilium'un harika bir otomasyon aracı vardır:
Ne Yapar? Cluster'ın içine kendi kendine "Test-Pod"ları yaratır. Bu Pod'ları birbiriyle konuşturmaya çalışır, internete ping atar ve tüm ağ yollarının açık olduğunu sana raporlar.
3. Hubble'ı Aktif Etmek
Cilium ağı kurdu ama trafiği izleme özelliği (Hubble) sistemi yormasın diye varsayılan olarak kapalı gelir. Bunu açmak için Helm (Kubernetes'in paket yöneticisi) kullanırsın:
Ne Yapar? Mevcut çalışan Cilium kurulumunu bozmadan (
--reuse-valueskısmı çok önemlidir), sadece Hubble'ın terminal izleme (relay) ve tarayıcı arayüzü (ui) bileşenlerini aktif hale getirir.
4. Canlı Trafiği (Matrix'i) İzlemek
Artık ağında neler olup bittiğini kendi bilgisayarından canlı izleyebilirsin. Önce cluster ile kendi bilgisayarın arasında güvenli bir tünel açman gerekir:
Bu komut arka planda çalışırken, yeni bir terminal sekmesi açıp sihirli komutu yazarsın:
Sonuç: Terminal ekranında, cluster içindeki tüm ağ trafiği canlı loglar halinde akmaya başlar. "A Pod'u B Pod'una bağlandı (TCP ACK)" gibi detayları anlık olarak görürsün.
Zaten kurulu ama ağ altyapısı olmayan bir Kubernetes cluster'ına kendi bilgisayarımızdaki CLI araçlarını kullanarak bağlandık. İçeriye Cilium'u kurduk, ağın çalıştığını test ettik ve son olarak Hubble ile içerideki trafiği canlı izlemeye başladık.
Last updated