Kubernetes

bir sunucu kümesindeki kapsayıcıları yönetmek için kullanılan yazılım

Kubernetes (/ˌk(j)bərˈnɛtɪs, -ˈntɪs, -ˈntz, -ˈnɛtz/, genellikle K8s [2] 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.[3][4] Google başlangıçta Kubernetes'i tasarladı, ancak artık Cloud Native Computing Foundation projeyi sürdürmektedir.

Kubernetes
Orijinal yazar(lar)Google
Geliştirici(ler)Cloud Native Computing Foundation
İlk yayınlanma7 Haziran 2014 (10 yıl önce) (2014-06-07)[1]
Programlama diliGo
TürKüme yönetim yazılımı
Resmî sitesikubernetes.io
Kod deposu Bunu Vikiveri'de düzenleyin

Kubernetes, Docker, Containerd ve CRI-O ile çalışmaktadır.[5] Başlangıçta, bir "Dockershim" aracılığıyla yalnızca Docker runtime[6] ile arabirim oluşturdu; ancak, Kasım 2020'den [7] 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ı.[8][9][10] Mayıs 2022'de v1.24'ün yayınlanmasıyla birlikte "Dockershim" tamamen kaldırıldı.[11]

 
Google Cloud Summit'te Google Kubernetes Engine konuşması

Kubernetes (κυβερνήτης, Yunanca "dümenci", "pilot" veya "vali" ve sibernetiğin etimolojik köküdür) [4] Google tarafından 2014 yılının ortalarında duyuruldu.[12] Proje Joe Beda, Brendan Burns ve Craig McLuckie [13][14] 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ı.[12]

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ı;[15][16] Kubernetes'i Star Trek eski Borg karakteri Seven of Nine [17] 'den sonra " Project 7 " olarak adlandırdılar ve logosuna yedi kollu bir tekerlek verdiler. C++ ile yazılmış Borg'dan farklı olarak [15] Kubernetes kaynak kodu Go dilindedir.

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

Google zaten yönetilen Kubernetes hizmetleri sunarken Red Hat, 2014'te Kubernetes projesinin başlangıcından bu yana OpenShift'in bir parçası olarak Kubernetes'i destekliyordu.[23] Ancak 2017 yılında, başlıca rakipler Kubernetes etrafında toplandı ve bunun için şu yazılımlar için yerel destek eklediklerini duyurdu:

  • Ağustos ayında, VMWare (Pivotal Cloud Foundry'nin savunucusu) [24]
  • Eylül ayında, Mesosphere, Inc. (Marathon ve Mesos savunucusu) [25]
  • Ekim ayında, Docker, Inc. (Docker savunucusu) [26]
  • daha sonra aynı Ekim, Microsoft Azure [27]
  • Kasım ayında AWS, Kubernetes için Elastic Container Service (EKS) aracılığıyla Kubernetes desteğini duyurdu [28]

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ı.[29]

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.[30] 1.19 sürümünden itibaren Kubernetes, bir N-3 destek politikası izler.[31]

Kavramlar

değiştir
 
Kubernetes Mimari Diyagramı

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.

Kubernetes'in ana kavramları arasında aşağıdakiler bulunur:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

Bu kavramlar, Kubernetes kullanıcılarına uygulamalarını hızlı ve güvenli bir şekilde yönetme imkanı sağlar.[32]

Dağıtımlar

değiştir

Çeşitli kurumlar Kubernetes'i dağıtan Kubernetes tabanlı platformlar veya hizmet olarak altyapı (IaaS) sunar.[33][34]

Bunlar şunları içerir:

  • Alibaba Cloud ACK (Alibaba Cloud Container Service for Kubernetes)
  • Amazon EKS (Elastic Kubernetes Service)
  • DigitalOcean tarafından yönetilen Kubernetes Hizmeti
  • Google GKE (Google Kubernetes Engine)
  • IBM Cloud Kubernetes Services
  • Microsoft AKS (Azure Kubernetes Services)
  • Mirantis K0s
  • Oracle Container Engine for Kubernetes
  • Red Hat Openshift
  • SUSE Rancher Kubernetes Engine (RKE)
  • VMware Tanzu

Sürüm çizelgesi

değiştir
Sürüm çizelgesi
Sürüm Yayım tarihi Destek sonu[35] Notlar
Eski sürüm, artık desteklenmiyor: 1.0 10 Temmuz 2015 Asıl sürüm
Eski sürüm, artık desteklenmiyor: 1.1 9 Kasım 2015 https://kubernetes.io/blog/2015/11/kubernetes-1-1-performance-upgrades-improved-tooling-and-a-growing-community 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.2 16 Mart 2016 23 Ekim 2016 https://kubernetes.io/blog/2016/03/kubernetes-1-2-even-more-performance-upgrades-plus-easier-application-deployment-and-management 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.3 1 Temmuz 2016 1 Kasım 2016 https://kubernetes.io/blog/2016/07/kubernetes-1-3-bridging-cloud-native-and-enterprise-workloads 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.4 26 Eylül 2016 21 Nisan 2017 https://kubernetes.io/blog/2016/09/kubernetes-1-4-making-it-easy-to-run-on-kuberentes-anywhere 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.5 12 Aralık 2016 1 Ekim 2017 https://kubernetes.io/blog/2016/12/kubernetes-1-5-supporting-production-workloads 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.6 28 Mart 2017 23 Kasım 2017 https://kubernetes.io/blog/2017/03/kubernetes-1-6-multi-user-multi-workloads-at-scale 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.7 30 Haziran 2017 4 Nisan 2018 https://kubernetes.io/blog/2017/06/kubernetes-1-7-security-hardening-stateful-application-extensibility-updates 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.8 28 Ağustos 2017 12 Temmuz 2018 https://kubernetes.io/blog/2017/09/kubernetes-18-security-workloads-and 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.9 15 Aralık 2017 29 Eylül 2018 https://kubernetes.io/blog/2017/12/kubernetes-19-workloads-expanded-ecosystem 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.10 28 Mart 2018 13 Şubat 2019 https://kubernetes.io/blog/2018/03/26/kubernetes-1.10-stabilizing-storage-security-networking 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.11 3 Temmuz 2018 1 Mayıs 2019 https://kubernetes.io/blog/2018/06/27/kubernetes-1.11-release-announcement 8 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.12 27 Eylül 2018 8 Temmuz 2019 https://kubernetes.io/blog/2018/09/27/kubernetes-1.12-kubelet-tls-bootstrap-and-azure-virtual-machine-scale-sets-vmss-move-to-general-availability 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.13 3 Aralık 2018 15 Ekim 2019 https://kubernetes.io/blog/2018/12/03/kubernetes-1-13-release-announcement 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.14 25 Mart 2019 11 Aralık 2019 https://kubernetes.io/blog/2019/03/25/kubernetes-1-14-release-announcement 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.15 20 Haziran 2019 6 Mayıs 2020 https://kubernetes.io/blog/2019/06/19/kubernetes-1-15-release-announcement 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.16 22 Ekim 2019 2 Eylül 2020 https://kubernetes.io/blog/2019/09/18/kubernetes-1-16-release-announcement 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.17 9 Aralık 2019 13 Ocak 2021 https://kubernetes.io/blog/2019/12/09/kubernetes-1-17-release-announcement 9 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.18 25 Mart 2020 18 Haziran 2021 https://kubernetes.io/blog/2020/03/25/kubernetes-1-18-release-announcement
Eski sürüm, artık desteklenmiyor: 1.19 26 Ağustos 2020[36] 28 Ekim 2021 From Kubernetes version 1.19 on, the support window has been extended to one year of full support plus two months of maintenance mode period.[31]

https://kubernetes.io/blog/2020/08/26/kubernetes-release-1.19-accentuate-the-paw-sitive 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.20 8 Aralık 2020 28 Şubat 2022 https://kubernetes.io/blog/2020/12/08/kubernetes-1-20-release-announcement/ 8 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, artık desteklenmiyor: 1.21 8 Nisan 2021 28 Haziran 2022 https://kubernetes.io/blog/2021/04/08/kubernetes-1-21-release-announcement/
Eski sürüm, ama yine de destekleniyor: 1.22 4 Ağustos 2021 28 Ekim 2022 https://kubernetes.io/blog/2021/08/04/kubernetes-1-22-release-announcement/ 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, ama yine de destekleniyor: 1.23 7 Aralık 2021 28 Şubat 2023 https://kubernetes.io/blog/2021/12/07/kubernetes-1-23-release-announcement/ 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Eski sürüm, ama yine de destekleniyor: 1.24 3 Mayıs 2022 29 Eylül 2023 https://kubernetes.io/blog/2022/05/03/kubernetes-1-24-release-announcement/ 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Şimdiki kararlı sürüm: 1.25 23 Ağustos 2022 27 Ekim 2023 https://kubernetes.io/blog/2022/08/23/kubernetes-v1-25-release/ 6 Ekim 2022 tarihinde Wayback Machine sitesinde arşivlendi.
Gösterge:
Eski sürüm
Eski sürüm, hala destekleniyor
Son sürüm
Son önizleme sürümü
Gelecek dağıtım

Destek pencereleri

değiştir

Aşağıdaki tablo, her bir sürümün desteklendiği/desteklendiği dönemi görselleştirir [35]

Ayrıca bakınız

değiştir
  • Küme yönetimi yazılımı listesi
  • Open Service Mesh
  • OpenShift
  • Docker

Kaynakça

değiştir
  1. ^ "First GitHub commit for Kubernetes". github.com. 7 Haziran 2014. 1 Mart 2017 tarihinde kaynağından arşivlendi. 
  2. ^ "Kubernetes GitHub Repository". GitHub. 22 Ocak 2021. 22 Ocak 2016 tarihinde kaynağından arşivlendi. 
  3. ^ "kubernetes/kubernetes". GitHub (İngilizce). 21 Nisan 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Mart 2017. 
  4. ^ a b "What is Kubernetes?". Kubernetes. 1 Nisan 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Mart 2017. 
  5. ^ "Container runtimes". Kubernetes (İngilizce). 18 Temmuz 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 14 Kasım 2021. 
  6. ^ "Kubernetes v1.12: Introducing RuntimeClass". kubernetes.io. 10 Ekim 2018. 10 Ekim 2018 tarihinde kaynağından arşivlendi. 
  7. ^ "Deprecate Dockershim - Kubernetes Github repository - PR 94624". Github.com. 1 Aralık 2020 tarihinde kaynağından arşivlendi. 
  8. ^ "Don't Panic: Kubernetes and Docker". Kubernetes Blog (İngilizce). 2 Aralık 2020. 3 Aralık 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Aralık 2020. 
  9. ^ "Introducing Container Runtime Interface (CRI) in Kubernetes". Kubernetes (İngilizce). 19 Aralık 2016. 27 Mayıs 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Mayıs 2021. 
  10. ^ "kubernetes/community". GitHub (İngilizce). 20 Ağustos 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Mayıs 2021. 
  11. ^ "Updated: Dockershim Removal FAQ". Kubernetes Blog. 17 Şubat 2022. 17 Şubat 2022 tarihinde kaynağından arşivlendi. 
  12. ^ a b Metz. "Google Open Sources Its Secret Weapon in Cloud Computing". Wired. 10 Eylül 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Eylül 2015. 
  13. ^ Metz. "Google Made Its Secret Blueprint Public to Boost Its Cloud". Wired (İngilizce). 1 Temmuz 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 27 Haziran 2016. 
  14. ^ The History of Kubernetes & the Community Behind It, 20 Temmuz 2018, 27 Şubat 2022 tarihinde kaynağından arşivlendi  Yazar |ad1= eksik |soyadı1= (yardım)
  15. ^ a b Abhishek Verma (April 21–24, 2015). "Large-scale cluster management at Google with Borg". Proceedings of the European Conference on Computer Systems (EuroSys). 27 Temmuz 2017 tarihinde kaynağından arşivlendi. 
  16. ^ "Borg, Omega, and Kubernetes - ACM Queue". queue.acm.org. 9 Temmuz 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 27 Haziran 2016. 
  17. ^ "Early Stage Startup Heptio Aims to Make Kubernetes Friendly". 18 Temmuz 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Aralık 2016. 
  18. ^ "As Kubernetes Hits 1.0, Google Donates Technology To Newly Formed Cloud Native Computing Foundation". TechCrunch. 23 Eylül 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Eylül 2015. 
  19. ^ "Cloud Native Computing Foundation". 3 Temmuz 2017 tarihinde kaynağından arşivlendi. 
  20. ^ "Release v1.0: Merge pull request #277 from jackgr/master · helm/helm". GitHub (İngilizce). 16 Aralık 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Mayıs 2021. 
  21. ^ "Helm (package manager) - wikieduonline". www.wikieduonline.com. 17 Kasım 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Mayıs 2021. 
  22. ^ "Helm". helm.sh (İngilizce). 27 Kasım 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Mayıs 2021. 
  23. ^ "Red Hat and Google collaborate on Kubernetes to manage Docker containers at scale". 10 Temmuz 2014. 2 Temmuz 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ağustos 2022. 
  24. ^ "VMware and Pivotal Launch Pivotal Container Service (PKS) and Collaborate with Google Cloud to Bring Kubernetes to Enterprise Customers". 29 Ağustos 2017. 6 Ekim 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ağustos 2022. 
  25. ^ "Mesosphere adds Kubernetes support to its data center operating system". 6 Eylül 2017. 6 Eylül 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ağustos 2022.  Yazar |ad1= eksik |soyadı1= (yardım)
  26. ^ "Docker Announces Enhancements to the Docker Platform to Simplify and Advance the Management of Kubernetes for Enterprise IT". 17 Ekim 2017. 26 Eylül 2020 tarihinde kaynağından arşivlendi. 
  27. ^ "Introducing AKS (managed Kubernetes) and Azure Container Registry improvements". 24 Ekim 2017. 7 Şubat 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ağustos 2022.  Yazar |ad1= eksik |soyadı1= (yardım)
  28. ^ "Introducing Amazon Elastic Container Service for Kubernetes (Preview)". 29 Kasım 2017. 30 Kasım 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Ağustos 2022. 
  29. ^ "Kubernetes Is First CNCF Project To Graduate". Cloud Native Computing Foundation (İngilizce). 6 Mart 2018. 29 Ekim 2018 tarihinde kaynağından (html) arşivlendi. Erişim tarihi: 3 Aralık 2018. Compared to the 1.5 million projects on GitHub, Kubernetes is No. 9 for commits and No. 2 for authors/issues, second only to Linux.  Yazar |ad1= eksik |soyadı1= (yardım)
  30. ^ "Kubernetes version and version skew support policy". Kubernetes. 16 Temmuz 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Mart 2020. 
  31. ^ a b "Kubernetes 1.19 Release Announcement > Increase Kubernetes support window to one year". Kubernetes. 26 Ağustos 2020. 28 Ağustos 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Ağustos 2020. 
  32. ^ "Kubernetes Arşivleri - Can Kütahya". 2 Nisan 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Nisan 2023. 
  33. ^ "The 7 Most Popular Kubernetes Distributions" (İngilizce). 25 Temmuz 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Aralık 2021. 
  34. ^ "Why Kubernetes Developer Ecosystem Needs A PaaS". Forbes (İngilizce). 12 Nisan 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Mayıs 2021.  Yazar |ad1= eksik |soyadı1= (yardım)
  35. ^ a b "Kubernetes Patch Releases". GitHub. 4 Mayıs 2022. 16 Aralık 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Mayıs 2022. 
  36. ^ "Kubernetes 1.19 Release Announcement". Kubernetes. 26 Ağustos 2020. 28 Ağustos 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Ağustos 2020. 

Harici bağlantılar

değiştir