KubeShark for K8s

Uğur Duran
4 min readMar 6, 2023

--

Ölçeklenebilir ve Güvenli Trafik Yakalama

Selamlar dostlar. Bugün sizlere workfordreamseries onuncu sayısında sizlere kubernetes cluster’ımızı yönetiminde trafik ve yüklerin dağıtımını çok basit bizlere sunan ve opensource olarak bizlere tool sağlayan KubeShark hakkında deneyimlerimi paylaşmak adına kalemi elime alıyorum.

Kubeshark, Kubernetes’in dahili ağına gerçek zamanlı, protokol düzeyinde görünürlük sağlayan, kapsayıcılar, bölmeler, düğümler ve kümeler arasında giren, çıkan tüm trafiği ve yükleri yakalayan, parçalara ayıran ve izleyen bir Kubernetes API Traffic Viewer’dır.

k8s with kubeshark

TCPDump ve Wireshark’ın Kubernetes için yeniden icat edildiğini düşünün.

Kubeshark, kümenizdeki TCP trafiğinin parçalarını veya tamamını koklayabilir, bunu bir PCAP dosyasına kaydedebilir ve aşağıdaki uygulama katmanı protokollerini inceleyebilir:

  • HTTP/1.0
  • HTTP/1.1
  • HTTP/2
  • AMQP
  • Apaçi Kafkası
  • Redis
  • DNS
  • Kubeshark, HTTP/2 üzerinden gRPC’yi, HTTP/1.1 üzerinden GraphQL’i ve HTTP/2 üzerinden GraphQL’yi tanır.

Kubeshark, hem çekirdek alanında hem de kullanıcı alanında işlev çağrılarını izlemek için genişletilmiş BPF (eBPF) kullanır.

Kubeshark eBPF kullanarak kümenizdeki şifrelenmiş trafiği (TLS) gerçekten şifre çözme işlemi yapmadan koklayabilir. Aslında, OpenSSL kitaplığı ve Go’nun kripto/tls paketi içindeki belirli işlevlerde giriş ve çıkış noktalarına bağlanır.

Kubeshark, Istio, Linkerd gibi hizmet ağı çözümlerini ve Envoy Proxy kullanan diğer hizmet ağı çözümlerini arka planda tanıyabilir.

Kubeshark neyi çözüyor?

Her şeyi izleyin — İster Pod-Pod ağ trafiğini izleyin, ister yapılan API çağrılarını izleyin, ister tek bir düğümü, bir hizmeti veya — /latest/meta-data veya /health vb. gibi belirli bir yolu izleyin.

Görselleştirin — Kubeshark Viewer, gerçek zamanlı trafiği görüntülemek, filtrelemek, analiz etmek ve herhangi bir sorunu gidermek için çok basit ama çok güçlü. Sağ bölmedeki Yanıt İste ayrıntıları çok net.

PCAP deposu — Bir olayın gelecekteki analizi için PCAP’yi depolayın, bunu kolayca S3'e veya başka bir depolamaya aktarabilir, daha sonra yükleyebilir ve görselleştirebilirsiniz.

Daha Kolay Hata Ayıklama — Bir şeyde hata ayıklamak veya kümedeki çeşitli bileşenler arasındaki iletişim anlayışını derinleştirmek olsun, bu, bunu büyük ölçüde sağlar.

Gerçek Zamanlı Uyarı — Kubeshark’ın kullanmama izin verdiği Data ile K8'ler için gerçekten güçlü uyarı oluşturabiliyor. Sırları alma konusundaki başarısız çağrıları, başarısız örnek meta veri çağrılarını ve bunun gibi daha birçok anormalliği düşünün.

Hadi Kuruluma başlayalım :) ..

Kubeshark’ı yükleyelim ve nasıl çalıştığını görelim.
Bu komutu kullanarak KubeShark’ı kurabilirsiniz.

command note : kubeshark = ks

sh <(curl -Ls https://kubeshark.co/install)
sh <(curl -Ls https://kubeshark.co/install)

Belirli sürüm ve sürüm için, buradan ikili dosyayı indirin..

https://github.com/kubeshark/kubeshark/releases/

Homebrew

Homebrew kullanıcıları Kubeshark formüllerini aşağıdakilerle ekleyebilir:

brew tap kubeshark/kubeshark
brew tap kubeshark/kubeshark
brew install kubeshark
brew install kubeshark

Kubernetes kümenizdeki trafiği yakalamaya başlamak için Kubeshark CLI’yi nasıl kullanabileceğinize dair birkaç örneği burada bulabilirsiniz:

kubeshark tap
ks tap
  • A’ya dokunun tüm ad alanlarına dokunur, belirli bir namespace’i izlemek için -n’yi belirtebilirsiniz.
kubeshark tap -A

Kubeshark için açılan kaynakların clean edilmesiyle analiz durdurulur.

kubeshark clean
ks clean

Kubeshark trafiği izlemeye/dokunmaya başlayacak ve yerel ana makinenizde 8899 numaralı bağlantı noktasında bir görüntüleyici başlatacak.

Kubeshark ikilisinin ~/.kube/config’ten mevcut bağlamınıza baktığını ve kaynaklarını oluşturmak ve izlemeye başlamak için aynı kimlik bilgilerini ve kümeyi kullandığını unutmayın.

Kubeshark’ın nasıl çalıştığı hakkında hızlı bir fikir edinmek için yerel bir tür kümesi oluşturabilirsiniz. ( local’de minikube kurulumu yapılabilir)

Arayüz Kullanımı:

Neleri takip ettiğimize ve kubeshark’ın kontrol panelinde hangi yeteneklere sahip olduğuna bakalım. Bunlar, kubeshark’ı test etmek için kullandığım bazı örnek filtrelerdir.

http://localhost:8899/ üzerinden erişim sağladıktan sonra aşağıdaki gibi gui bizi karşılıcaktır.
Sol panelde k8s cluster’ına ait isteklerin dönüşleri görünmektedir.
Sağ panelde seçilen bir istekde hangi method path ve servis bilgileri detaylı görüntülenmektedir.

localhost:8899 view

Service Map görünümü : Burada ilgili servis isteklerinin arka planda hangi servis ve ip’lerle ileşimde olduğunu örümcek ağı olarak bir arayüz sunmaktadır.

Service Map

Birden fazla bir cluster yönettiğimizi düşünelim. Burada node.name ve request.path ‘e göre search kabiliyeti sağlamaktadır. Ve bu aramalara kolay ulaşabilmek adına query sorgularınızı kayıt altına alabilirsiniz.

searchable && apply && save

Deneyim ve Düşünceler:

  • Kümedeki çeşitli bileşenlerin mümkün olan en düşük düzeyde nasıl iletişim kurduğunu ve birlikte çalıştığını anlamamı derinleştirmeye yardımcı oluyor.
  • Hata Ayıklama/Sorun Giderme, trafiğe uygun filtreler eklenerek süper basit hale gelir.
  • Hizmet Haritaları, kümemin görsel açıdan nasıl göründüğüne ilişkin üst düzey bir genel bakış sağlar.
  • Hem operasyonel hem de güvenlik uyarıları olmak üzere bazı gerçek zamanlı uyarılar yapmak için verileri genişletebilir.
  • Makul bir ölçekte bir performans karşılaştırması yapmak ve trafik miktarının büyük ölçekte katlanarak arttığı göz önüne alındığında, bu aracın nasıl ölçeklendiğini, bilgi işlem ve depolamayı nasıl etkilediğini görmek iyi olur.

Kubeshark, daha önce Mizu olarak bilinen, UP9 tarafından bir API trafik görüntüleyici olarak geliştirilen ve daha sonra açık kaynaklı olan güçlü bir araçtır, şimdi bunun K8'ler için yeniden doğmuş Wireshark olduğunu belirtmek için adı Kubeshark olarak değiştirildi.

Site Referansı — https://kubeshark.co
Github Referansı — https://github.com/kubeshark/kubeshark

Okuduğunuz için teşekkürler.
Hatalar varsa lütfen belirtmekten çekinmeyin.

İçerikleri takip etmek için beni linkedIn hesabımda takip edebilirsiniz..
LinkedIn:
https://www.linkedin.com/in/ugurduran/

#workfordreamseries
Uğur Duran
Cloud & Devops Engineer

:)

--

--