Bir uygulama geliştirmediğimiz sürece her container Kubernetes'in içinde koşan uygulamaların her birini bilmesine gerek yoktur.
Sadece yaratılan bir kümeyi idare etmeli, uygulamanız Kubernetes API veya diğer harici servisleri kurcalamamalıdır. Sadece küme içerisinde varsayılan servisleri, hizmetleri bilmeli.
Bu senaryo, Kubernetes'i benimseyen ve başarısız olan aşırı hevesli ekiplerde çok yaygındır.
Uygulamalarını kümeden izole edin. Bazı klasik örnekler şu uygulamalardır:
* Diğer bölmelerle veri paylaşımı için belirli bir birim yapılandırması beklenmeli.
• Kubernetes ağı tarafından kurulan belirli bir hizmet/DNS adlandırması beklenmeli veya Belirli açık port varlığını varsaymalı.
• Kubernetes etiketlerinden ve açıklamalarından bilgi alınmalı.
• Bilgi için kendi bölmelerini sorgulamalı (örneğin hangi IP adresine sahip olduklarını görmek için)
• Yerel iş istasyonlarında düzgün çalışması için bir init veya sidecar konteynerine ihtiyaç duyar
• Diğer Kubernetes hizmetlerini doğrudan aranmalı. (örneğin, Vault API gizli bilgileri bir Vault kurulumundan almalı ki varsayılan o anki cluster da olmalı.)
• Yerel bir kube yapılandırmasından veri okumalı.
- Kubernetes API'sini uygulama içinden doğrudan kullanmalı.
Uygulamanız Kubernetes'e özgüyse (Otomatik ölçekleyici veya operatör) gerçekten de Kubernetes hizmetlerine doğrudan erişmesi gerekir.
Ama standart web uygulamalarının %99'u bunun dışındadır. uygulamanız tamamen Kubernetes'in içinde çalıştığından habersiz olmalı.
Uygulamanızın Kubernetes'e bağlı olup olmadığını gösteren litmus testi çalıştırma yeteneğini gösterir.
Uygulamanız için bir Docker compose file yaratırsanız basit bir şekilde ölecektir. Bu demektir ki; o zaman 12 faktörlü uygulama ilkelerini ve uygulamanızı takip ettiğiniz anlamına gelir özel ayarlara ihtiyaç duymadan herhangi bir cluster da kurulabilir.
Yerel Kubernetes testini anlamak önemlidir. Birkaç tane yerel Kubernetes dağıtımları için çözümler vardır. (minikube, microk8s, kind vb.)
Bu çözümlere bakın ve bir uygulama üzerinde çalışan bir geliştiriciyseniz. Kubernetes'e dağıtmak ayrıca Kubernetes'i kendiniz çalıştırmanız gerekir.
Bu gerçeklerden daha uzak olmamalıdır. Uygulamanız doğru tasarlanmışsa bunları yapmamalısınız.
Taşırım doğru yapılmış ise entegrasyon testlerini local olarak çalıştırmak için Kubernetes'e ihtiyaç yoktur. Sadece uygulamayı kendi kendine başlatın. (Docker veya Docker-compose ile) ve testlerle doğrudan başlayın.
Bağımlılıklarınızdan bazılarının harici bir Kubernetes kümesinde çalışıyor olması sorun değil. Ama İşlevselliğini test ederken uygulamanın kendisinin Kubernetes'in içinde çalışmasına gerek olmamalıdır.
Alternatif olarak, yerel Kubernetes geliştirme için özel çözümlerden herhangi birini de kullanabilirsiniz.
Okteto, garden.io ve tilt.dev gibi.




