Kubernetes

Kubernetes (, genellikle K8s olarak yazılır) yazılım dağıtımını, ölçeklendirmeyi ve yönetimini otomatikleştirmek için açık kaynaklı bir yerleştirme düzenleme sistemidir. Google başlangıçta Kubernetes'i tasarladı, ancak artık Cloud Native Computing Foundation projeyi sürdürmektedir.

Kubernetes, Docker, Containerd ve CRI-O ile çalışmaktadır. Başlangıçta, bir "Dockershim" aracılığıyla yalnızca Docker runtime ile arabirim oluşturdu; ancak, Kasım 2020'den Nisan 2022'ye kadar Kubernetes, kapsayıcıyla Containerd aracılığıyla doğrudan arabirim oluşturma veya Docker'ı Container Runtime Interface (CRI) ile uyumlu bir çalışma zamanı ile değiştirme lehine "shim" kullanımdan kaldırdı. Mayıs 2022'de v1.24'ün yayınlanmasıyla birlikte "Dockershim" tamamen kaldırıldı.

Kubernetes (κυβερνήτης, Yunanca "dümenci", "pilot" veya "vali" ve sibernetiğin etimolojik köküdür) Google tarafından 2014 yılının ortalarında duyuruldu. Proje Joe Beda, Brendan Burns ve Craig McLuckie tarafından oluşturuldu ve kısa süre sonra Brian Grant ve Tim Hockin de dahil olmak üzere diğer Google mühendisleri katıldı.

Kubernetes'in tasarımı ve geliştirilmesi, Google'ın Borg küme yöneticisinden etkilenmiştir. En çok katkıda bulunanların çoğu daha önce Borg üzerinde çalışmıştı; Kubernetes'i Star Trek eski Borg karakteri Seven of Nine 'den sonra " " olarak adlandırdılar ve logosuna yedi kollu bir tekerlek verdiler. C++ ile yazılmış Borg'dan farklı olarak Kubernetes kaynak kodu Go dilindedir.

Kubernetes 1.0, 21 Temmuz 2015'te yayınlandı. Google, Cloud Native Computing Foundation'ı (CNCF) oluşturmak ve bir tohum teknolojisi olarak Kubernetes'i sunmak için Linux Foundation ile birlikte çalıştı. Şubat 2016'da Kubernetes için Helm paket yöneticisi yayınlandı.

6 Mart 2018'de Kubernetes Projesi, GitHub projeleri listesinde Linux çekirdeğinden sonra taahhüt sayısı ile dokuzuncu, yazarlar ve sayılarda ikinci sırada yer aldı.

1.18 sürümüne kadar Kubernetes, bir N-2 destek politikası izledi; bu, en son üç küçük sürümün güvenlik güncellemeleri ve hata düzeltmeleri aldığı anlamına gelir. 1.19 sürümünden itibaren Kubernetes, bir N-3 destek politikası izler.

Kubernetes, açık kaynaklı bir konteyner orkestrasyon sistemi olarak tanımlanır. Bu sistem, birden fazla konteyner uygulamasını koordine etmek, dağıtmak ve yönetmek için kullanılır. Kubernetes'in temel amacı, uygulamaların yüksek kullanılabilirlik ve ölçeklenebilirlik sağlamak için dağıtım, ölçeklendirme ve yönetim işlemlerini otomatikleştirmektir.

Konteyner: Yazılım uygulamalarını bir arada tutmak için kullanılan hafif ve taşınabilir bir sanallaştırma yöntemidir. Her bir konteyner, kendi izolasyon ortamında çalışır.

Pod: Bir veya daha fazla konteynerin bir araya gelerek oluşturduğu en küçük uygulama birimidir. Bir pod, aynı fiziksel veya sanal makinede çalışan konteynerlerin bir araya getirilmesiyle oluşur.

ReplicaSet: Belirli bir pod sayısının çalışmasını sağlamak için kullanılan bir kontrol mekanizmasıdır. ReplicaSet, bir pod grubunun belirli bir sayıda çalışmasını sağlar.

Deployment: Uygulama dağıtımı için kullanılan bir kontrol mekanizmasıdır. Deployment, birden fazla replica seti üzerinde çalışır ve uygulamanın istenen durumunu sağlamak için pod'ların sayısını ve durumunu yönetir.

Service: Pod'ların birbirleriyle iletişim kurabilmesi için kullanılan bir ağ kaynağıdır. Bir servis, bir pod grubuna erişmek için bir IP adresi ve DNS adı sağlar.

Namespace: Kubernetes kaynaklarını ve objelerini gruplamak için kullanılan bir mantıksal yapıdır. Her bir namespace, belirli bir uygulama veya kullanım durumu için kaynakları gruplandırır.