Kubernetes Temel Bilgiler

Mehmet Can Ertugrul
Intertech
Published in
3 min readApr 5, 2023

Kubernetes (Kısaca Kates veya K8s) , birçok farklı iş yükünü (uygulamalar, mikro hizmetler, veritabanları vb.) yönetmek için kullanılan açık kaynaklı bir konteyner orkestrasyon aracıdır. K8s, konteyner teknolojisi ile uygulama dağıtımını, ölçeklendirmeyi ve yönetmeyi kolaylaştırır.

K8s uygulama ve hizmetlerin orkestrasyonunu kolaylaştıran ve ölçeklenebilir hale getiren bir platform olarak tasarlanmıştır. (server yönetmekten çok daha kolay) Bu, uygulamaların daha hızlı, daha güvenilir ve daha esnek bir şekilde dağıtılmasını ve yönetilmesini sağlar. Ayrıca K8s, yüksek kullanılabilirlik ve sürekli hizmet sağlama özellikleri ile de önemli bir araçtır. Kubernetes, birçok farklı özellik, bileşen ve kavram içerir.

Aşağıdaki bileşenler, Kubernetes’in temel yapı taşlarını oluşturur:

  • Kubernetes Master: Kubernetes cluster’ının kontrol merkezidir. Master, API sunucusu, etcd, controller-manager ve scheduler gibi bir dizi önemli bileşeni içerir. API sunucusu, kullanıcıların Kubernetes cluster’ıyla etkileşim kurmasına izin veren bir arabirim sunar. Etcd, cluster’ın durumunu ve yapılandırmasını tutar. Controller-manager, cluster’da çalışan kaynakların durumunu sürekli olarak izler ve gerektiğinde otomatik olarak düzeltmeler yapar. Scheduler, yeni podların nereye yerleştirileceğine karar verir.
  • Node: Kubernetes cluster’ındaki fiziksel veya sanal bir makineyi temsil eder. Pod’ların çalıştırıldığı ve uygulama kaynaklarının barındırıldığı yerdir.
  • Pod: Bir veya daha fazla konteyneri barındıran en küçük Kubernetes birimidir. Pod, bir veya daha fazla konteyner için bir çalışma ortamı sağlar ve bu konteynerler arasında ağ ve depolama kaynaklarını paylaşır.
  • Konteyner: Kubernetes’de uygulama kodunu ve tüm bağımlılıklarını (örneğin, kütüphaneler ve ortamlar) kapsayan birimdir.
  • ReplicaSet: Bir uygulama veya hizmet için belirli bir sayıda pod’un çalıştırılmasını sağlar ve pod’ların sağlığını izler.
  • Deployment: ReplicaSet’leri yönetir ve uygulamanın yeni bir sürümünü yayınlama ve eski bir sürümü silme gibi güncelleme işlemlerini yönetir.
  • Service: Pod’ların erişilebilirliğini ve birbirleriyle iletişimini yönetir. Service, Pod’ları birleştirir ve tek bir IP adresi sağlar, bu da Pod’ların yeniden oluşturulması veya yer değiştirmesi durumunda bile uygulama erişilebilirliğini korur.
  • Volume: Pod’ların verileri depolamasını sağlar. Pod’lar için kalıcı veri depolama sağlamak için kullanılır.
  • Namespace: Cluster’da kullanılan bir etiketleme sistemidir. Namespace, farklı kullanıcılar ve uygulamalar arasında kaynakları izole etmek için kullanılır

K8s yukarıda ki ana bileşenleri kullanarak şu önemli görevleri işletir:

  • Konteynerlerle (örneğin Docker gibi) çalışır ve konteynerlerin yönetimini kolaylaştırır. Konteynerler, uygulamaları ve bağımlılıklarını tek bir pakette bir arada tutarak taşınabilirliği artırır.
  • Düğümlere (Node) bağımlılıkların dağıtılması, güncellenmesi ve iş yüklerinin dengelemesi dahil olmak üzere uygulamanın tüm yönlerini yönetir. (Deployment)
  • Birçok farklı ölçeklenebilirlik seviyesi sunar. Küçük uygulamalardan büyük ölçekli, yüksek trafikli uygulamalara kadar her türlü senaryoda kullanılabilir.
  • Yüksek kullanılabilirlik ve hata toleransı sağlar. Uygulamanın bir bileşeninde bir arıza oluştuğunda, diğer bileşenler hala çalışabilir ve uygulama genelindeki performansı düşürmeden sorunun üstesinden gelebilir. (Replicasets-Deployments)
  • Yapılandırma dosyaları kullanarak (yaml) uygulamanın konfigürasyonunu tanımlar. Bu dosyalar, uygulama yapılandırmasını, yapılandırma değişikliklerini ve ölçeklendirme düzenlerini içerir.
  • Uygulama güncellemelerini, dağıtımlarını ve geri alınmasını otomatikleştirir. Böylece, uygulama geliştirme sürecini hızlandırır. (Deployments)
  • Kubernetes, birden fazla bulut platformu veya veri merkezindeki farklı donanımlarda çalışan uygulamaları yönetebilir. Bu, uygulamaların farklı ortamlarda taşınabilirliğini artırır.
  • K8s, uygulama güvenliğini sağlamak için bir dizi özellik sunar. Bu özellikler, kimlik doğrulama, yetkilendirme, şifreleme ve ağ güvenliği dahil olmak üzere uygulamanın tüm yönlerini korur.
  • Kubernetes, birçok farklı ekosistem ve araçlarla entegre olabilir. Bu, uygulama geliştiricilerinin mevcut araçlarını kullanarak uygulamalarını Kubernetes üzerinde çalıştırmasına olanak tanır.

K8s hızlı başlangıç yapabilmek için aşağıda ki önerilere göz atabilirsiniz:

Online pratikler de yapabileceğiniz platformlara göz atın:

Örnek Uygulamaları Kurun ve Yönetin:

  • Kubernetes, birçok farklı uygulama türünü destekler. Örnek olarak, Kubernetes’in örnek uygulamalarından birini (örneğin, Guestbook uygulaması) kurarak, uygulamanın nasıl çalıştığını ve Kubernetes’in nasıl kullanıldığını öğrenebilirsiniz. Uygulamayı kurduktan sonra, pod’ları, servisleri ve diğer Kubernetes bileşenlerini yönetebilirsiniz.
  • Kubebuilder veya Kustomize gibi Araçları Kullanın: Kubebuilder veya Kustomize gibi araçlar, Kubernetes YAML dosyalarını oluşturmanıza ve yönetmenize yardımcı olur.

Bu yazıyı yazmamda yönlendirmeleri ve görüşleriyle Fırat Doğan’a çok teşekkür ederim.

--

--