Kubby kullanım kılavuzu
Kubby, Windows için ücretsiz bir masaüstü Kubernetes yönetim uygulamasıdır. Bu kılavuz Kubby 1.0'ı anlatır. Her bölüm önce bir ekran görüntüsü, ardından adımları gösterir.
Uygulamadaki ekran, menü ve düğme adları uygulamada göründüğü gibi İngilizce yazılmıştır.
İçindekiler
- Başlarken
- Günlük kullanım
- Değişiklik yapma
- Entegrasyonlar
- Sorun giderme rehberleri
- Hesap ve ayarlar
- Güncellemeler ve yardım
Bu kılavuzdaki komutlar hakkında
Her komut bloğunda nerede çalıştırılacağı yazar: PowerShell veya WSL bash. kubectl komutları, açık cluster'a bağlı olan Kubby terminalinde de çalışır. <pod>, <ns> gibi yer tutucuları kendi değerlerinizle değiştirin.
1. Başlarken
1.1 Giriş
Kubby bilgisayarınızda çalışır ve cluster'larınıza kubeconfig dosyalarınızla doğrudan bağlanır. Cluster'a hiçbir şey kurulmaz, cluster verileri hiçbir sunucuya gönderilmez.

- Kubby, Kubernetes API'nin hesabınıza izin verdiği işlemleri yapar; fazlasını yapamaz.
- Listeler canlı güncellenir (Kubernetes watch API). Yenilemeniz gerekmez.
| Amaç | Nerede |
|---|---|
| Sorunları görmek | Overview, Pods ve Nodes sayfalarının en üstünde. |
| Nedenini anlamak | Loglar, event'ler, describe, Why is it restarting?. |
| Güvenle değiştirmek | Farkı gösteren YAML düzenleme, ölçekleme, yeniden başlatma, PROD koruması. |
| İzlemek | Prometheus panoları, kapasite, sertifikalar. |
| GitOps ve Helm | Argo CD uygulamaları; Helm release'leri, upgrade ve rollback. |
Hızlı başlangıç:
- Kubby'yi kurun (1.2).
- Yerel Kubby hesabınızı oluşturun.
- Bir cluster ekleyin (1.3).
- Overview sayfasını açın: ilgilenilmesi gerekenler en üsttedir.
1.2 Kurulum ve ilk açılış
Kubby ücretsizdir. kubby.tech indirme sayfasındaki tek bir kurulum dosyasıyla (Kubby_<sürüm>_x64-setup.exe) gelir ve yönetici yetkisi istemeden kurulur. Sihirbaz İngilizcedir; Türkçe Windows'ta Türkçe açılır.
Kurulum

- Kurulum dosyasını çalıştırın. Windows Windows protected your PC uyarısı gösterirse (dosya henüz kod imzalı değil) More info bağlantısına tıklayın, dosyanın Kubby kurulumu olduğunu kontrol edin ve Run anyway düğmesine basın. Kurum politikası imzasız kurulumları engelliyorsa BT ekibinden dosyaya SHA-256 özetiyle izin vermesini isteyin (özet indirme sayfasındadır).
- Kubby'nin kimin için kurulacağını seçin ve Next düğmesine basın:
- Only for me (varsayılan):
%LOCALAPPDATA%\Programs\Kubbyklasörüne, yönetici yetkisi olmadan. - Anyone who uses this computer (all users):
C:\Program Files\Kubbyklasörüne. Windows yönetici izni ister; vermezseniz Only for me seçeneğine dönün.
- Only for me (varsayılan):
- Kubby zaten kuruluysa Already Installed sayfası önce kaldırmayı mı yoksa üzerine kurmayı mı istediğinizi sorar. Kubby mevcut klasörünü korur.

- Klasörü olduğu gibi bırakın veya Browse… ile değiştirin, ardından Install düğmesine basın.


- İsterseniz Run Kubby ve Create desktop shortcut seçili kalsın, ardından Finish düğmesine basın.
Kaldırmak için: Windows Ayarlar → Uygulamalar → Yüklü uygulamalar → Kubby → … → Kaldır. Tüm kullanıcılar için yapılmış bir kurulumun kaldırılması yönetici izni ister.
Açma ve kapatma

- Pencereyi × ile kapatmak Kubby'yi kapatmaz; Lens'te olduğu gibi saatin yanındaki bildirim alanında çalışmaya devam eder. Simgesine tıklayınca Kubby yeniden açılır.
- Tamamen çıkmak için File → Exit menüsünü kullanın veya simgeye sağ tıklayıp Quit Kubby'yi seçin.
- Kubby'nin Windows oturumu açılınca başlaması için: Preferences → App → Start-up.
İlk açılış: hesap oluşturma

- Create your Kubby account: First name, Last name, User name, Password ve Password again alanlarını doldurun.
- Scan with your authenticator app: QR kodunu Microsoft Authenticator, Google Authenticator veya benzeri bir uygulamayla okutun (kaydın adı Kubby olur), ardından 6 haneli kodu Code from the app alanına yazın.
- Save your recovery codes: telefonunuzu kaybederseniz kullanacağınız 10 tek kullanımlık kod. Güvenli bir yerde saklayın.
Bir oturum 8 saat geçerlidir. Sonraki adım: ilk cluster'ınızı ekleyin.
1.3 Cluster ekleme
Kubby cluster'lara kubeconfig dosyalarıyla bağlanır. Eklenen her context, %APPDATA%\Kubby\kubeconfigs klasörüne düz bir kubeconfig dosyası olarak kaydedilir (Lens'teki gibi); token ve parolalar loglara asla yazılmaz.

- Cluster çubuğundaki + düğmesine, File → Add cluster… menüsüne veya Clusters sayfasındaki Add cluster düğmesine tıklayın.
- Kubeconfig'i yapıştırın ya da Choose file… / Scan .kube folders kullanın. Birden fazla context varsa eklenecekleri seçin.
- Test sonucunu kontrol edin: Kubernetes sürümü ve node sayısı (Test again testi tekrarlar).
- Display name, isteğe bağlı Default namespace, Environment ve isteğe bağlı Group alanlarını doldurun.
- İsteğe bağlı: Confirm every change (apply, delete, drain öncesinde cluster adı yazılır) ve Open read-only (kilit açılana kadar düzenleme ve exec gizlenir).
- Add cluster düğmesine basın.
Cluster eklemenin başka yolları:
- Clusters sayfasındaki Import from folder, bir klasördeki tüm kubeconfig dosyalarını içe aktarır.
- Preferences → Kubernetes → Manage kubeconfigs, dosya ve klasörleri sürekli eşitler.
Ortamlar: her cluster bir ortama aittir (PROD, PREPROD, TEST veya kendi tanımladığınız bir ortam). Ortamın rengi pencerenin üstündeki şeritte, cluster çubuğunda ve etiketlerde görünür. Korumalı ortamlarda (varsayılan olarak PROD) her değişiklik cluster adının yazılmasıyla onaylanır (3.2). Yeni ortam: Preferences → Cluster bar → Environments → New environment.
Cluster çubuğu ve gruplar

- Cluster çubuğunda neyin görüneceğini kutucukların üstündeki düğmeden seçin.
- Kutucukları sürükleyerek sıralayın veya gruplayın. Rengini ve görünümünü değiştirmek için kutucuğa sağ tıklayın.
- Kutucuktaki kırmızı sayı, o cluster'daki sorun sayısıdır.
| Kısayol | Ne yapar |
|---|---|
| Ctrl + 1 … 9 | Gösterilen gruptaki 1–9. cluster'ı açar |
| Ctrl + Alt + ↓ / ↑ | Sonraki / önceki gruba geçer |
1.4 Arayüz
Pencere beş bölümden oluşur. Sayfalar sekme olarak açılır; tıkladığınız kaynak sağdaki ayrıntı panelinde açılır (Esc ile kapanır).

| Bölüm | İçeriği |
|---|---|
| Cluster çubuğu (en solda) | Cluster'larınız, Argo CD merkezi ve Clusters sayfası. |
| Navigator | Açık cluster'ın menüsü: Monitoring, Logs, Overview, Applications, Nodes ve kaynak grupları. Sayılar adetleri, renkli sayılar sorunları gösterir. |
| Çalışma alanı | Sekme olarak açılan sayfalar. Ask Kubby sağda kendi panelinde açılır. |
| Alt panel | Terminaller ve kaynak oluşturma düzenleyicisi. Boyutu değiştirilebilir, birden fazla sekme alır. |
| Üst çubuk | File, View, Cluster, Tools, Help menüleri; arama ve komut paleti (Ctrl + K); bildirim zili; profil menüsü (baş harfleriniz). |
| Durum çubuğu | Bağlantı, API gecikmesi, izlenen pod'lar, namespace, WSL dağıtımı ve Kubby sürümü. Ortadaki byz, Kubby'nin GitHub sayfasını açar. |
Tema: Kubby koyu temayla açılır. View → Theme veya Preferences → App ile açık temaya ya da Windows ayarını izleyen System seçeneğine geçebilirsiniz.
2. Günlük kullanım
2.1 Overview ve sorunlar
Overview, açık cluster'ı özetler: node'lar, pod'lar, CPU ve bellek, sağlık kartı (2.2) ve Needs attention listesi.

- Kubby şunları tanır: CrashLoopBackOff, ImagePullBackOff, OOMKilled, yerleştirilemeyen pod'lar (Pending, Unschedulable), başarısız Job'lar, hazır olmayan workload'lar ve Secret'lardaki süresi yakında dolacak veya dolmuş TLS sertifikaları.
- Kaynağı açmak için satıra tıklayın. Problem pods, pod listesini sorunlarla açar.
- Sağ üstteki namespace seçiciyle bir veya birden fazla namespace seçin. Seçim cluster bazında hatırlanır.

Yeniden başlayan bir pod'da Why is it restarting? son çıkış kodunu ve nedenini, OOMKilled durumunda bellek limitini ve görülen en yüksek kullanımı, yeniden başlatma örüntüsünü ve Logs before crash bağlantısını gösterir.
2.2 Cluster sağlık puanı
Her cluster A'dan F'ye bir not ve 100 üzerinden bir puan alır. Overview üzerindeki Cluster health kartı bunu gösterir.

- Not: 90 ve üzeri A, 80 ve üzeri B, 70 ve üzeri C, 60 ve üzeri D, 50 ve üzeri E, altı F.
- Last 30 days: Kubby, cluster'ı izlediği sürece puanı saatte bir kaydeder.
- By area: workloads, pods, nodes, network, storage, security alanları; her biri için kritik ve uyarı sayıları.
- Fix first: puanı en çok düşüren beş bulgu grubu. All N findings, Cluster health sayfasını açar.

Her bulguda Open ve Accept… bulunur. Accept…, bulguyu nesne, namespace'i veya tüm cluster için puan dışında bırakır. Gerekçe zorunlu, bitiş tarihi isteğe bağlıdır; kabul etme ve geri alma audit log'a yazılır.
| Alan | Kubby'nin kontrol ettikleri |
|---|---|
| Kaynaklar | Bellek limiti veya request'i olmayan container'lar. |
| Image'lar | Sabit tag'i olmayan image'lar (:latest); izin listeniz dışındaki registry'ler. |
| Probe'lar | Readiness veya liveness probe eksikliği. |
| Güvenlik | Privileged container'lar, root olarak çalışan (veya çalışabilecek) container'lar, host network, PID veya path erişimi. |
| Referanslar | Workload'un ihtiyaç duyduğu ama mevcut olmayan ConfigMap, Secret ve service account'lar. Kubby yalnızca adlarını okur. |
| Workload'lar | Hazır pod'u olmayan, istenenden az hazır pod'u olan veya sıfıra ölçeklenmiş workload'lar. |
| Service'ler | Pod seçmeyen, hazır endpoint'i olmayan veya pod'ların açmadığı bir porta yönlenen Service'ler. |
| Disruption budget'lar | Pod seçmeyen veya drain'i engelleyen PDB'ler; PDB'si olmayan workload'lar. |
| Node'lar | Cordon edilmiş node'lar. |
Puanın hesaplanması: her nesne her alanda bir kez, en kötü bulgusuyla sayılır (kritik 0, uyarı 0,6, bulgusuz 1). Alan ağırlıkları: workloads 25, pods 25, nodes 15, network 15, storage 10, security 10. Nesnesi olmayan alanlar hesaba katılmaz; okuma yetkiniz olmayan alan Not checked olarak görünür.
Preferences → Cluster health ayarları: hariç tutulan namespace'ler (varsayılan: kube-system, kube-public, kube-node-lease, cattle-*, fleet-*, cis-operator-system, local-path-storage; sondaki * önek eşleşmesi yapar) ve izin verilen registry'ler, örneğin harbor.bank.local (boşsa hepsine izin verilir).
2.3 Kaynak listeleri ve ayrıntılar
Navigator'da bir kaynak türü seçin; Kubby canlı listesini açar. Ayrıntılar için bir satıra tıklayın; sağda açılır.

- Sorunlu kaynaklar Needs attention altında en üstte kalır. Pods için hızlı filtreler: All, Needs attention, Restarted in 24h, Pending, Completed.
- Arama (büyük/küçük harf, düzenli ifade), sütun başlığıyla sıralama, başlık kenarını veya başlığı sürükleme, sütun düğmesiyle sütun ekleme ve kaldırma. Seçimleriniz hatırlanır.
- Toplu işlem için satır onay kutularını kullanın. Listeyi CSV olarak dışa aktarın.
- Ayrıntı sekmeleri: Overview (özellikler, durumlar, metrikler), Edit YAML, Describe, Events, Related ve türe göre Logs veya Rollout history. Üstteki simge araç çubuğunda aksiyonlar bulunur.
- Metrikler (metrics-server varsa): son bir saatin CPU ve bellek grafiği, request ve limit çizgileriyle.
- Related: sahipler ve bağımlılıklar, örneğin Deployment → ReplicaSet → Pod, Ingress → Service. Ingress adresi tarayıcıda açılır.
- Custom Resources: cluster'daki tüm CRD'ler gruplarına göre; yerleşik türler gibi listelenir ve düzenlenir.
2.4 Loglar ve event'ler
Bir pod'un Logs sekmesi logları canlı veya önceki (çöken) çalışmadan gösterir.

- Container: çok container'lı pod'larda seçin.
- Current run / Previous run: son satırdan sonra Kubby container'ın nasıl sonlandığını gösterir (örneğin OOMKilled, çıkış kodu 137).
- Restart history zaman çizelgesinde; sayaçlı arama ("3/12"); ERROR, WARN, INFO, DEBUG seviye filtreleri.
- Zaman aralığı ve satır sayısı (örneğin Last 10,000 lines); saatler sizin saat diliminizde; kopyalama veya indirme.
- Workload logları: bir Deployment veya StatefulSet'in tüm pod'ları tek akışta, her satır pod adıyla işaretli.
- Event'ler: Events sayfası cluster'ın event'lerini önce Warning'ler olmak üzere listeler. Her kaynağın kendi Events sekmesi de vardır.
- Describe: arama ve kopyalama destekli
kubectl describeçıktısı (5.1 bir örneğini gösterir).
2.5 Logs sayfası
Logs sayfası seçtiğiniz tüm pod ve container'ların loglarını tek bir canlı zaman çizelgesinde birleştirir; satırlar arasında pod başlatma, sonlandırma ve event'ler de görünür.

- Navigator'da Logs'u açın (veya bir workload'un sağ tık menüsünden, Logs aksiyonundan ya da paletten).
- Add source düğmesine tıklayın: bir workload (Deployment, StatefulSet, DaemonSet, CronJob),
app.kubernetes.io/part-of=gatewaygibi bir label seçici, bir namespace veya bir pod. - Kartları kullanın: Log volume (o dakikayı okumak için çubuğa tıklayın), Levels (filtrelemek için), Pods (birini gizlemek için), Restarts (Jump ile çökmeye gidin).
- Filtreleyin: Search (düzenli ifade için .*), Exclude (örneğin
/health), Lifecycle and events. Node'larınız farklıysa node, zone ve mimari filtreleri görünür. - Download, gösterilen satırları filtrelerinizle kaydeder.
- Jump, çökmeden beş dakika öncesinden bir dakika sonrasına kadar olan aralığı gösterir, takibi duraklatır ve çöken çalışmanın satırlarını "(previous)" işaretiyle ekler.
- Zaman aralığı: Last 5 min ile Last 24 h arası veya özel aralık. Yukarı kaydırmak takibi duraklatır; en alta inmek yeniden başlatır.
- Yeni pod'lar sayfa yenilenmeden eklenir; silinen pod'un satırları kalır. İki kaynağın seçtiği pod bir kez okunur.
- Sınırlar: 40 akış ve en yeni 10.000 satır. Kaynaklar kısıldığında durum satırı bunu belirtir.
2.6 Terminal, shell ve port yönlendirme
Alt paneldeki terminaller seçili cluster'a bağlı açılır; pod ve node shell'leri kendi sayfalarından açılır.

- Cluster terminali: Ctrl + ` alt paneli açar veya gizler (1.4 bir örneğini gösterir). Profiller: cmd, PowerShell ve WSL dağıtımlarınız (varsayılan Preferences → Terminal altında).
kubectlvehelmseçili cluster'a gider; Kubby ile gelen sürümler PATH'tedir. - Pod shell: pod sayfasındaki Shell düğmesi veya paletteki Ctrl + E.
- Node shell: node sayfasından. Kubby node üzerinde geçici, ayrıcalıklı bir pod çalıştırır ve shell'i kapattığınızda siler.
- Port forward: pod sayfasındaki Port forward düğmesi, bir pod portunu Kubby açık kaldığı sürece bilgisayarınıza yönlendirir.
2.7 Komut paleti ve kısayollar
Ctrl + K paleti açar. Kaynaklar, sayfalar ve aksiyonlar birlikte aranır; son açılan sayfalar üstte durur, açık cluster'da sonuç yoksa palet diğer cluster'larda aramayı önerir.

- Ctrl + K'ye basın ve bir ad yazın.
- Yalnızca komutları listelemek için önce
>yazın. - Seçili satırın aksiyonları (loglar, shell, describe…) için Tab'a basın.

| Kısayol | Ne yapar |
|---|---|
| Ctrl + K | Komut paleti |
| Ctrl + 1 … 9 | Cluster çubuğundaki 1–9. cluster |
| Ctrl + Alt + ↓ / ↑ | Sonraki / önceki cluster grubu |
| Ctrl + , | Preferences |
| ? | Kısayol listesi |
| Esc | Pencereyi veya ayrıntı panelini kapatır |
| Ctrl + ` | Terminal panelini açar veya gizler |
| Ctrl + F | Kod görünümünde arama |
| Ctrl + L (palet) | Seçili nesnenin logları |
| Ctrl + Shift + L (palet) | Seçili pod'un önceki (çöken) çalışmasının logları |
| Ctrl + E (palet) | Seçili pod'da shell |
| Ctrl + Shift + E (palet) | Seçili nesnenin YAML'ını düzenleme |
| Ctrl + Shift + T (palet) | Seçili nesnenin namespace'inde kubectl terminali |
3. Değişiklik yapma
3.1 YAML düzenleme ve kaynak oluşturma
Kubby YAML'ı doğrular, farkı gösterir ve ancak ondan sonra uygular.

- Kaynak sayfasında Edit YAML sekmesini açın. Düzenleyici siz yazarken renklendirir ve doğrular.
- Değişikliğinizi yapın. Review before apply neyin değişeceğini gösterir.
- Uygulayın. Kubby değişikliği sunucuda doğrular ve çakışmaları bildirir.
- Argo CD kaynakları: bir sonraki sync doğrudan düzenlemeyi geri alabilir; Copy as Git patch değişikliği Git'e taşır. Helm workload'ları: değişiklik Helm üzerinden önerilir.
- Ctrl + F kod görünümlerinde arar; düzenleyicilerde değiştirme satırı da açılır.

Kaynak oluşturmak için:
- Liste sayfasında + düğmesine tıklayın. Oluşturma düzenleyicisi alt panelde açılır.
- Select template: temel türler (Pod, Deployment, Service, Ingress, ConfigMap, Secret…), Gateway API, Traefik ve Istio.
- Düzenleyip oluşturun. Kubby önce sunucu tarafında dry-run çalıştırır; hatalar düzenleyicinin altında görünür.
3.2 Aksiyonlar ve PROD koruması
Aksiyonlar kaynak sayfasının araç çubuğunda ve listelerin sağ tık menüsündedir. Korumalı bir cluster'da her değişiklik cluster adının yazılmasını bekler.

| Aksiyon | Türler |
|---|---|
| Scale | Deployment, StatefulSet, ReplicaSet |
| Restart | Deployment, StatefulSet, DaemonSet |
| Rollout history ve rollback | Deployment |
| Cordon, uncordon, drain | Node |
| Run now (Trigger) | CronJob |
| Delete | Tüm kaynaklar |
| Secret değerini gösterme | Secret |
- PROD koruması: korumalı bir ortamda veya Confirm every change açıkken onay için cluster adını yazarsınız.
- Salt okunur: Open read-only açıksa değişiklik yapan tüm aksiyonlar kapalıdır ve Secret değerleri düzenlenemez.
- Sıfıra ölçekleme: Kubby önceki replica sayısını hatırlar ve tekrar ölçeklerken önerir.
- Her değişiklik (uygulanan, reddedilen veya çakışan) audit log'a yazılır (3.4).
3.3 Helm
Helm → Releases release'leri namespace, chart, sürüm, durum ve son güncelleme bilgisiyle listeler; daha yeni bir chart varsa bir rozet görünür.

- Ayrıntılar: kullanıcının verdiği ve hesaplanan values, revizyon geçmişi, release'in kaynakları ve sağlıkları, README.
- İki revizyonu karşılaştırın; values'u kaydedin (secret'lar maskelenir).
Upgrade veya rollback için:
- Release menüsünden Upgrade'i seçin. Values'u düzenleyin veya başka bir chart sürümü seçin.
- Dry-run sonucunu kontrol edin.
- Onaylayın. Geri dönmek için Roll back ile geçmişten bir revizyon seçin.

Helm → Charts içinden bir chart seçip values'unuzla kurun. Depoları Preferences → Kubernetes → Helm repositories altında ekleyin. Helm işlemleri de PROD korumasına tabidir ve audit log'a yazılır.
3.4 Audit log
Kubby'den yapılan her değişiklik kullanıcı, cluster, işlem, kaynak ve sonuçla kaydedilir. Tools → Audit log ile açın.

- Kaydedilenler: YAML uygulama, ölçekleme, yeniden başlatma, silme, cordon ve drain; Helm upgrade, rollback ve uninstall; Argo CD işlemleri; Secret değerlerinin gösterilmesi; kabul edilen sağlık bulguları; kurulum asistanının yaptığı kurulumlar.
- Her kaydın sonucu: applied, forbidden, conflict veya read. Reddedilen işlemler de kaydedilir.
- Kullanıcı, işlem veya kaynağa göre arayın; cluster ve sonuca göre filtreleyin.
- Log bilgisayarınızda kalır; Secret değerleri ve kimlik bilgileri asla yazılmaz. Gönderim ayarları: Preferences → Audit log.
4. Entegrasyonlar
4.1 Monitoring
Monitoring, cluster'ın kendi Prometheus'undan (Rancher Monitoring, kube-prometheus-stack veya prometheus chart'ı) hazır panolar gösterir. Kubby ona Kubernetes API üzerinden ulaşır; port forward, ingress veya token gerekmez.

- Navigator'da Monitoring'i açın. Birden fazla Prometheus varsa sağ üstten seçin (cluster bazında hatırlanır).
- Zaman aralığını (5 dakika ile 24 saat arası) ve otomatik yenilemeyi (30 sn, 1 veya 5 dk) seçin ya da Refresh'e basın.
- Grafiklerini açmak için bir çubuk listesindeki namespace veya pod'a tıklayın.
| Sekme | İçerik |
|---|---|
| Overview | Hazır node'lar, pod durumları, alarmlar; kapasite; kullanılan, istenen, limit CPU ve bellek. |
| Nodes | Her node için bir kart (IP, CPU, bellek, disk, yük, pod'lar, OS); diskler ve en ağır pod'lar için tıklayın. Tablo görünümü de vardır. |
| Capacity | Şimdiki request'ler ve en büyük node düşerse durum; node bazında overcommit; kullanılmayan request'ler; bellek limiti olmayan container'lar. |
| Workloads | En çok CPU ve bellek kullanan pod'lar, yeniden başlatmalar, OOMKilled, throttling, maksimumdaki HPA'lar, başarısız CronJob'lar. |
| Control plane | API server, etcd, scheduler, CoreDNS, admission webhook'ları. |
| Storage & network | PVC ve disk doluluk tahmini, ağ trafiği ve hataları, ingress 5xx. |
| Certificates | Kubelet ve cert-manager sertifikalarının kalan günleri. |
| Alerts | Tetiklenen ve bekleyen alarmlar; tetiklenenler zilde de görünür. |
Prometheus servisi için services/proxy üzerinde get yetkiniz olmalıdır; yoksa Kubby bunu belirtir.
4.2 Log depoları ve geçmiş
Logs sayfasındaki History, geçmiş logları Loki, Elasticsearch veya OpenSearch'ten okur; artık var olmayan pod'lar dahil.

- Logs sayfasında Live'dan History'ye geçin. Kaynaklarınız düzenleyebileceğiniz bir sorguya (LogQL veya Lucene) dönüşür.
- Aralığı seçin (1 saat ile 30 gün arası veya özel); daraltmak için hacim grafiğindeki bir çubuğa tıklayın.
- İsteğe bağlı: depo topluyorsa Node logs: kubelet, containerd.
- Kubernetes çöken bir çalışmayı artık tutmuyorsa Read it from the log store, History'yi çökme anının etrafında açar.
- Cluster içindeki depolar Kubernetes API üzerinden, sizin yetkilerinizle bulunur ve okunur. Elasticsearch ve OpenSearch için index, TLS ve kimlik bilgilerini Preferences → Monitoring and logs altında ayarlayıp Test'e basın.
- Merkezi depolar: tüm cluster'lara hizmet veren tek depo; her cluster için https adresi, index ve cluster etiketiyle (örneğin
cluster=prod-app) eklenir. Metrikler de merkezi bir Prometheus, Thanos, Mimir veya VictoriaMetrics'ten okunabilir. - Kimlik bilgileri: Kubby bir depo için parola, anahtar veya token saklamaz. Bunu bir Kubernetes Secret'ına koyun; Kubby yalnızca namespace, ad ve anahtar adını tutar.
WSL bash:
kubectl -n kubby-system create secret generic kubby-os-reader \
--from-literal=username=kubby-reader --from-literal=password='<parola>'
Henüz depo yok mu? History Set up logs ve Use a central store seçeneklerini sunar (4.3).
4.3 Log ve metrik kurulumu
Kubby'nin cluster'larınızda hiçbir şeye ihtiyacı yoktur; ama maliyetini gösterdikten sonra bir log deposu (Loki ve Grafana Alloy, kubby-loki namespace'inde) veya küçük bir Prometheus kurabilir. Install'a basana kadar hiçbir şey değişmez.

- Set up logs (Overview'da veya Logs History'de) ya da Set up monitoring (Monitoring'de) düğmesine tıklayın.
- Seçimler: depolama (PVC veya S3), Keep for 1, 3, 7 veya 14 gün, image'lar internetten veya kendi registry'nizden (örneğin
harbor.bank.local/mirror), chart'lar açık depolardan veya kendi aynanızdan. - Maliyet ve kontrol: Kubby log hızını yaklaşık bir dakika ölçer; ardından request'leri, önerilen disk boyutunu, yetkilerinizi, image'ları ve values'u gösterir. Copy the commands aynı kurulumu platform ekibinize verir.
- Install: Helm kurar, Kubby pod'ları bekler. PROD'da önce cluster adını yazarsınız; kurulum audit log'a yazılır.
Preferences → Monitoring and logs → Installed by Kubby bu kurulumları listeler. Change günceller; Remove kaldırır (namespace'i ve diskleri de silmeyi seçmezseniz diskler kalır).
4.4 Argo CD
Argo CD merkezi (cluster çubuğundaki Argo CD simgesi) bir veya daha fazla Argo CD'ye bağlanır.

- Cluster çubuğundaki Argo CD simgesine, ardından Add instance'a tıklayın.
- Bir ad, adres ve ortam girin, bir API token'ı yapıştırın. Argo CD özel bir sertifika kullanıyorsa CA sertifikasını ekleyin.
- Test connection sürümü, kullanıcıyı ve yetkilerinizi gösterir. Instance'ı ekleyin.
Token Windows Credential Manager'da saklanır; ayar dosyalarına ve loglara asla yazılmaz.

- Uygulama sayfası: özet, kaynak ağacı (grafik veya liste), Git ile cluster arasındaki fark, geçmiş ve rollback, event'ler ve loglar.
- Teşhis: Degraded bir uygulamada veya başarısız bir sync'te Kubby nedeni gösterir. Açmak için kaynağa tıklayın.
- İşlemler: sync, refresh, Hard refresh, rollback, çalışan işlemi durdurma, auto-sync açma veya kapatma. Bir işlemi engelleyen sync window'ları gösterilir. PROD instance'larında instance adını yazarsınız.
4.5 Ask Kubby
Ask Kubby, yapay zekâ destekli bir sorun giderme asistanıdır. Canlı cluster'ı Kubby'nin salt okunur araçlarıyla, seçtiğiniz yapay zekâ modeli üzerinden okur. Siz açana kadar kapalıdır.


Açmak için:
- Preferences → External Tools bölümünü açın.
- Bir bağlantı ekleyin: Subscription (kendi aboneliğinizle kurulu Claude Code, Codex CLI veya Gemini CLI) ya da API connection (Add model: OpenAI, Anthropic, Google Gemini, xAI veya kurumunuzun OpenAI uyumlu gateway'i; anahtarlar Windows Credential Manager'a gider).
- Varsayılan bağlantıyı seçin ve Enable Ask Kubby'yi açın. Kapalıyken Kubby hiçbir yapay zekâ aracını başlatmaz ve hiçbir şey göndermez.
Soru sormak için:
- Bir sayfadaki veya ayrıntı panelindeki Ask Kubby düğmesine tıklayın. Sohbet bağlamınızla (cluster, namespace, kaynak) başlar.
- Sorunuzu yazın, örneğin "web-7c9d8f6b5-0009 pod'u neden sürekli yeniden başlıyor?" veya "En büyük node düşerse workload'lar kalan node'lara sığar mı?".

- Değişiklikler asla doğrudan uygulanmaz: Kubby önizleme gösterir, onayınızı bekler ve işlemi audit log'a yazar. Argo CD kaynaklarında Kubby değişikliği Git'te yapmanızı hatırlatır; Helm workload'larında değişiklik Helm upgrade ile yapılır.
- Yalnızca Kubernetes, container, Helm ve DevOps soruları yanıtlanır. Konu dışı sorular modele hiç ulaşmaz.
| Veri | Nereye gider |
|---|---|
| Sorunuz ve sohbet geçmişi | Seçtiğiniz yapay zekâ sağlayıcısına, kendi hesabınız veya anahtarınızla. |
| Modelin istediği cluster verisi | Yalnızca o, aynı sağlayıcıya. |
| Secret değerleri, kubeconfig, token'lar, parolalar | Hiçbir yere. YAML, log ve Helm values içindeki parola ve token'lar önce maskelenir. |
| Konu dışı sorular | Hiçbir yere. Kubby bunları kendisi reddeder. |
| Kubby sunucuları | Hiçbir şey. Sohbetler oraya gönderilmez. |
Kurum politikanız gerektiriyorsa kurumunuzun onayladığı yapay zekâ gateway'ini kullanın.
5. Sorun giderme rehberleri
5.1 CrashLoopBackOff
Container başlar, kapanır; Kubernetes her seferinde yeniden başlatmadan önce daha uzun bekler (10 sn, 20 sn, 40 sn … en fazla 5 dakika). Neden; çıkış kodunda, önceki çalışmanın loglarında ve event'lerdedir.

Kubby'de: sürekli çöken pod'lar Overview ve Pods sayfalarında en üsttedir; Why is it restarting? çıkış kodunu, nedeni ve örüntüyü gösterir; Logs before crash önceki çalışmayı açar.
Komut satırından (PowerShell veya WSL bash):
kubectl describe pod <pod> -n <ns>
kubectl logs <pod> -n <ns> -c <container> --previous
kubectl get events -n <ns> --field-selector involvedObject.name=<pod>
| Çıkış kodu | Genellikle anlamı | Kontrol edin |
|---|---|---|
| 1 | Uygulama hatası | Önceki loglar: yapılandırma, eksik değişken veya Secret, erişilemeyen veritabanı. |
| 137 | SIGKILL, çoğunlukla OOMKilled | Bellek limiti ve kullanım (5.2). |
| 139 | Segmentation fault | Native kütüphane veya yanlış mimari için derlenmiş dosya. |
| 143 | SIGTERM | Başarısız liveness probe veya yavaş kapanış. |
| 0 | Süreç normal bitti | Uzun süre çalışan bir komut değil; Job kullanın. |
Sık nedenler: eksik yapılandırma; fazla katı bir liveness probe (startupProbe ekleyin veya initialDelaySeconds / failureThreshold değerini artırın); hazır olmayan bir bağımlılık; yetersiz bellek; yanlış komut veya image.
5.2 OOMKilled
Çekirdek, container bellek limitini aştığı (çıkış kodu 137) veya node'un belleği bittiği için (MemoryPressure; request'inden fazla kullanan pod'lar önce sonlandırılır) container'ı durdurmuştur.

Kubby'de: Overview OOMKilled pod'ları limitle birlikte listeler; Why is it restarting? limiti ve en yüksek kullanımı gösterir; bellek grafiği limit çizgisini çizer. Monitoring → Capacity bellek limiti olmayan container'ları listeler.
Doğrulayın (PowerShell veya WSL bash; kubectl top için metrics-server gerekir):
kubectl describe pod <pod> -n <ns>
kubectl top pod <pod> -n <ns> --containers
kubectl describe node <node>
Düzeltme:
- Limiti bir gün veya bir haftalık en yüksek kullanıma %20–30 pay ekleyerek belirleyin; request'leri gerçek kullanıma yakın tutun.
- Çalışma ortamlarını container'a göre ayarlayın: JVM
-XX:MaxRAMPercentage, Node.js--max-old-space-size, worker sayıları. - Kullanım sonlandırılana kadar artıyorsa sızıntı arayın. Node'un belleği bitiyorsa kapasite ekleyin.
- Argo CD veya Helm kullanıyorsanız limiti Git'te veya Helm values'ta değiştirin.
5.3 ImagePullBackOff
Kubelet image'ı çekemediği için pod hiç başlamaz. Neden event'lerdedir.

Kubby'de: ImagePullBackOff pod'ları image ve registry mesajıyla birlikte en üsttedir. Argo CD merkezinde Degraded bir uygulamanın teşhisi, image çekemeyen pod'u gösterir.
Mesajı bulun (PowerShell veya WSL bash):
kubectl describe pod <pod> -n <ns>
kubectl get pod <pod> -n <ns> -o jsonpath="{.spec.containers[*].image}"
Node üzerinde (WSL bash veya SSH oturumu): crictl pull <image>.
| Mesajda geçen | Neden | Düzeltme |
|---|---|---|
manifest unknown, not found | Tag veya digest yok | Tag'i düzeltin veya image'ı gönderin. |
unauthorized, authentication required, 403 | Registry kimlik bilgisi istiyor | imagePullSecrets içinde veya ServiceAccount'ta bir docker-registry Secret'ı. |
i/o timeout, no such host, connection refused | Node registry'ye ulaşamıyor | DNS, güvenlik duvarı, runtime proxy'si veya bir ayna. |
x509: certificate signed by unknown authority | Özel CA | CA'yı her node'daki container runtime'a ekleyin. |
toomanyrequests | Oran sınırı | Kimlik doğrulayın, pull-through önbelleği veya ayna kullanın. |
no matching manifest for | Yanlış mimari | Çok mimarili image veya uygun node'lar. |
Önlemek için: image'ları digest veya değişmez tag'lerle sabitleyin, pull secret'larını ServiceAccount'ta tutun, hatalı tag'leri Git'te düzeltin.
5.4 Pending durumundaki pod'lar
Scheduler uygun bir node bulamıyordur veya pod'un ihtiyaç duyduğu bir şey hazır değildir. Scheduler pod'ları gerçek kullanıma değil request'lere göre yerleştirir: CPU kullanımı %40 olan bir cluster, request'lerin toplamı %100'e ulaştıysa yeni pod'ları reddedebilir.

Kubby'de: yerleştirilemeyen pod'lar Needs attention içinde scheduler mesajıyla Unschedulable olarak görünür; Pods listesinde Pending filtresi vardır.
Scheduler'ın mesajını okumak için (PowerShell veya WSL bash) kubectl describe pod <pod> -n <ns> çalıştırın ve FailedScheduling event'ine bakın.
| Event'te geçen | Anlamı | Düzeltme |
|---|---|---|
Insufficient cpu / Insufficient memory | Hiçbir node'da yeterli boş (request edilmemiş) kapasite yok | Request'leri düşürün, kapasite boşaltın veya node ekleyin. |
untolerated taint | Node'lar taint'li | Toleration ekleyin veya pod'u başka node'larda çalıştırın. |
didn't match Pod's node affinity/selector | Seçici hiçbir node'la eşleşmiyor | Etiketleri veya seçiciyi düzeltin. |
pod has unbound immediate PersistentVolumeClaims | PVC bağlanmamış | StorageClass ve provisioner'ı kontrol edin; kubectl describe pvc. |
volume node affinity conflict | Volume'un zone'unda boş node yok | Oraya kapasite ekleyin veya WaitForFirstConsumer kullanın. |
Too many pods | Node başına pod sınırına ulaşıldı | Node ekleyin veya maxPods değerini artırın. |
exceeded quota (ReplicaSet'te) | ResourceQuota pod'u engelliyor | kubectl describe quota -n <ns>; kotayı artırın veya request'leri düşürün. |
5.5 Sertifika süresinin dolması
Üç grup önemlidir: control plane ve kubelet sertifikaları, uygulama TLS sertifikaları, webhook CA'ları.

Kubby'de: 30 gün içinde süresi dolacak veya dolmuş TLS Secret'ları Needs attention içinde görünür.
- RKE2 / k3s: sertifikalar 12 ay geçerlidir; bitişe 90 gün kala servis yeniden başlatılınca yenilenir.
rke2 certificate rotate(server node'da) yenilemeyi zorlar. - kubeadm: control plane node'unda
kubeadm certs check-expirationvekubeadm certs renew all. - cert-manager (PowerShell veya WSL bash):
kubectl get certificates -AREADYdurumunu gösterir;kubectl describe certificate <ad> -n <ns>yenileme zamanını ve son hatayı gösterir; nedeni düzelttikten sonracmctl renew <sertifika> -n <ns>yeniler. - Bir TLS Secret'ı (WSL bash):
``bash kubectl get secret <ad> -n <ns> -o jsonpath="{.data.tls\.crt}" | base64 -d | openssl x509 -noout -enddate ``
Kubelet istemci sertifikaları kendiliğinden yenilenir; sunum (serving) sertifikaları serverTLSBootstrap ve onaylanmış CSR'ler gerektirir. Prometheus alarmları: certmanager_certificate_expiration_timestamp_seconds - time() < 14 * 24 * 3600 ve kubelet_certificate_manager_client_ttl_seconds.
6. Hesap ve ayarlar
6.1 Bildirimler
Üst çubuktaki zil okunmamış haber ve alarmları gösterir (dokuzdan fazlaysa "9+"). Paneli açmak için tıklayın.

| Sekme | Gösterdiği |
|---|---|
| Cluster (adıyla) | Yalnızca açık cluster'da çalışan bileşenlerin haberleri: Kubernetes ve RKE2, kubelet, node OS ve runtime, Helm release'leri, image'lar. |
| DevOps | CNCF, Kubernetes ve seçtiğiniz bloglardan genel haberler. |
| Alerts | Cluster'ın Prometheus'undan tetiklenen alarmlar. |
| Argo CD | İlgilenilmesi gereken uygulamalar. |
- Kategoriler: Security patch, Version upgrade ("running 1.12.1 → 1.12.2"), New feature. Zaten çalıştırdığınız sürümler gösterilmez.
- Bir öğe ekranda 2 saniye kalınca veya açılınca okunmuş sayılır; Mark all as read hepsini okunmuş yapar. Öğeye tıklamak makaleyi tarayıcıda açar.
- Kaynaklar: Preferences → News (kaynakları kapatın, kendi https RSS veya Atom akışlarınızı ekleyin, 1, 6 veya 24 saatte bir yenileyin).
6.2 Notlar
Kubby içinde, yalnızca bilgisayarınıza kaydedilen küçük bir not defteri.

- Profil menüsünü (sağ üstte baş harfleriniz) açın → Notes.
- + yeni bir not sekmesi açar; yeniden adlandırmak için sekmeye çift tıklayın.
- Paneli Esc ile kapatın. Bir sekmeyi kapatmak onu ve metnini kalıcı olarak siler (Kubby önce sorar).
Notlar hiçbir yere gönderilmez ve loglara yazılmaz.
6.3 Hesap ve güvenlik
Kubby her Windows kullanıcısı için yerel bir hesap tutar: parolanız ve doğrulayıcı uygulamadaki 6 haneli kodla giriş yaparsınız.

- Bir oturum 8 saat geçerlidir. Art arda 5 hatalı denemeden sonra Kubby sizi bekletir; bekleme her seferinde uzar.
- Telefon kaybı: Use a recovery code seçeneğini seçin, parolanızı ve 10 kurtarma kodundan birini girin (her kod bir kez çalışır), ardından doğrulayıcıyı yeniden kurun.
- Parola ve kurtarma kodları yalnızca Argon2id özeti olarak saklanır; doğrulayıcı anahtarı ve oturum Windows Credential Manager'dadır.

Bilgisayarınızdan ne çıkar:
- Cluster verileri asla çıkmaz. Kubby yalnızca kubby.tech'e yeni sürüm olup olmadığını sorar ve sadece kendi sürüm numarasını gönderir. Telemetri yoktur.
- Kubeconfig'ler
%APPDATA%\Kubby\kubeconfigsiçinde düz dosyalardır; Argo CD token'ları ve yapay zekâ anahtarları Windows Credential Manager'dadır. Hiçbiri loglara yazılmaz. - Uygulama logları günlük dosyalardır; yalnızca son 5 gün tutulur.
6.4 Preferences
Ctrl + , veya File → Preferences… ile açın. Ayarlar bilgisayarınıza kaydedilir; üstteki arama kutusu bir ayarı adıyla bulur.

| Bölüm | İçerik |
|---|---|
| App | Tema, cluster renkleri, Kubby'yi Windows ile başlatma, tarih ve saatler için saat dilimi. |
| Proxy | Güncelleme kontrolü, haberler ve Helm depoları için HTTP proxy. Cluster'lar kubeconfig'teki proxy-url'i kullanır. |
| Kubernetes | Kubeconfig eşitleme, Helm depoları, Kubby ile gelen kubectl ve helm. |
| Monitoring and logs | Log depoları, merkezi depolar, metrikler, Installed by Kubby. |
| Cluster health | Hariç tutulan namespace'ler, izin verilen registry'ler. |
| Editor, Tables, Terminal | Düzenleyici ve terminal yazı tipleri ve boyutları, tablo satır yüksekliği, varsayılan terminal, kopyala-yapıştır. |
| External Tools | Yapay zekâ bağlantıları ve Enable Ask Kubby. |
| News | Haber kaynakları ve yenileme aralığı. |
| Cluster bar, Clusters | Favoriler, gruplar, ortamlar; eklenen cluster'lar. |
| Keyboard shortcuts | Tüm kısayollar. |
| Audit log | Audit log ayarları ve gönderim. |
| Data | Kubby'nin klasörleri ve Reset preferences…. |
7. Güncellemeler ve yardım
7.1 Güncellemeler
Kubby açılışta ve saatte bir kubby.tech'te yeni sürüm olup olmadığına bakar. Yeni sürüm varsa bir şerit Kubby <sürüm> is available. der.

- Şeritteki See and install düğmesine veya Help → Check for Updates… menüsüne tıklayın.
- Sürümü, tarihi ve notları okuyun.
- Install and restart'a basın. Kubby güncellemeyi indirir, Kubby'nin imzası ve sağlama toplamıyla doğrular (eşleşmeyen dosya kurulmaz), kurar ve yeniden başlar.
İnternet yoksa Kubby normal çalışır; yalnızca yeni sürümleri göremez. Proxy arkasındaysanız Preferences → Proxy'yi ayarlayın. Sürümünüz profil menüsünde ve durum çubuğundadır.
7.2 Kubby sorunlarını giderme
Preferences → Data, Kubby'nin klasörlerini açar: veriler, kubeconfig'ler ve uygulama logları (son 5 gün, token veya parola içermez).

| Sorun | Ne yapmalı |
|---|---|
| Cluster "Unreachable" görünüyor | API adresine VPN ve güvenlik duvarı erişimini kontrol edin. Bağlantı Preferences → Proxy'yi değil, kubeconfig'i (proxy-url dahil) kullanır. Token'ın süresi dolduysa yeni bir kubeconfig alıp cluster'ı yeniden ekleyin veya düzenleyin. |
| "No Prometheus found in this cluster" | Rancher Monitoring, kube-prometheus-stack veya prometheus chart'ını kurun ya da Set up monitoring'i kullanın. services/proxy üzerinde get yetkiniz olmalı. Boş paneller o metriklerin toplanmadığını gösterir; panel bunu belirtir. |
| Argo CD bağlantı testi başarısız | "Argo CD's TLS certificate was not accepted": CA sertifikasını ekleyin. 401 / 403: yeni bir token oluşturun. |
| Ask Kubby düğmesi yok | Preferences → External Tools'ta bağlantının Connected gösterdiğini kontrol edin (CLI araçları kurulu ve oturum açık olmalı), ardından Enable Ask Kubby'yi açın. |
| Doğrulayıcı kodu kabul edilmiyor | Telefonunuzun saati otomatik ayarlansın; kodlar saate bağlıdır. Telefonunuza erişemiyorsanız Use a recovery code'u kullanın. |
| Kurulum engelleniyor | More info → Run anyway ya da BT ekibinden dosyaya SHA-256 özetiyle izin vermesini isteyin (1.2). |
Destek: Kubby sürümünüzü (profil menüsü veya durum çubuğu), Windows sürümünüzü ve sorunu oluşturan adımları [email protected] adresine yazın. Uygulama logları Preferences → Data altındaki logs klasöründedir.