Kubernetes, uygulama konteynerlerini yönetmek ve ölçeklendirmek için kullanılan bir açık kaynak platformudur. Genellikle büyük, karmaşık uygulamalar için kullanılır ve bulut ortamlarında container'ları yönetmenin en iyi yolu olarak kabul edilir. Şimdi, Linux üzerinde Kubernetes kurulumuna geçelim.
1. Kubernetes Nedir ve Neden Kullanmalısınız?
Kubernetes, konteyner tabanlı uygulamalarınızın yönetimi ve orkestrasyonu için oluşturulmuş bir platformdur. Birkaç sunucu üzerinde çalışan uygulamaları kolayca yönetmenizi sağlar. Bu, özellikle mikro servis mimarileri ile çalışan yazılımlar için mükemmeldir.
- Yüksek kullanılabilirlik: Uygulamanız, otomatik olarak yeniden başlatılabilir, yedeklenebilir ve yüksek trafik altında bile stabil çalışabilir.
- Ölçeklenebilirlik: Kubernetes, uygulamanızı ihtiyacınıza göre kolayca ölçeklendirmenizi sağlar. Yeni kaynaklar eklemek ya da var olanları kaldırmak oldukça basittir.
- Hızlı dağıtım: Geliştirici ekipleri, uygulamaları hızla geliştirebilir ve üretim ortamlarına kolayca dağıtabilir.
2. Kubernetes Kurulumuna Başlangıç
Kubernetes’i kurmak aslında düşündüğünüz kadar karmaşık değil. Başlangıç için minikube veya kubeadm gibi araçları kullanabilirsiniz. Ancak bu rehberde, kubeadm ile kurulum yapacağız çünkü bu, en yaygın ve stabil yöntemlerden biridir.
Kubernetes’in düzgün çalışabilmesi için bazı ön gereksinimleri karşılamalısınız:
- Linux Sunucu: Ubuntu 20.04 veya CentOS 7/8 önerilir.
- CPU ve RAM: En az 2 CPU çekirdeği ve 2 GB RAM gereklidir.
- Depo Erişimi: Kubernetes'in gerekli paketlerini yükleyebilmek için internete erişiminiz olmalı.
# 2.2 Kubeadm ve Diğer Gereksinimleri Yüklemek
Öncelikle Kubernetes için gerekli araçları yüklemeliyiz. Bu işlem için terminali açarak aşağıdaki komutları çalıştırıyoruz:
# Sistem güncellemelerini yapalım
sudo apt-get update && sudo apt-get upgrade -y
# Kubeadm, kubelet ve kubectl yükleyelim
sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubeadm kubelet kubectl
# Kubelet'i başlatalım
sudo systemctl enable kubelet && sudo systemctl start kubelet
Bu adımları takip ederek, Kubernetes araçlarını başarılı bir şekilde kurmuş olacaksınız. Artık, Kubernetes master node’unu kurmaya hazırız.
3. Kubernetes Master Node Kurulumu
Kubernetes master node, tüm Kubernetes cluster'ını yöneten ana bileşendir. Burada, tüm kontrol planı çalışır ve diğer node'larla iletişim kurarak konteynerlerin yönetilmesini sağlar.
# Kubernetes master node kurulumu
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
Bu komut, Kubernetes master node’u başlatacaktır. Başarılı bir şekilde kurulum tamamlandığında, size bir "join token" verilecektir. Bu token, worker node’ları cluster’a dahil etmek için kullanılır.
Master node'unuzu kurduktan sonra, aşağıdaki komutla kubectl kullanarak Kubernetes ile etkileşime geçebilirsiniz:
# kubectl için yapılandırma dosyasını oluşturma
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Bu işlemler tamamlandığında, Kubernetes cluster'ınızı yönetmek için kubectl komut satırını kullanmaya başlayabilirsiniz.
4. Pod Ağı Kurulumu
Kubernetes, konteynerlerin birbirleriyle iletişim kurabilmesi için ağ altyapısına ihtiyaç duyar. Pod ağı için Flannel gibi bir ağ eklentisi kullanmak yaygın bir tercihtir.
# Flannel pod ağını kurma
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Ağ kurulumu tamamlandığında, Kubernetes cluster’ınız tamamen kullanıma hazır olacaktır.
5. Worker Node’ları Cluster’a Dahil Etme
Master node kurulumunu tamamladıktan sonra, diğer sunucuları worker node olarak cluster’a dahil edebilirsiniz. Worker node’ları eklemek için, daha önce verilen "join token" kullanılır:
# Worker node’u master node’a dahil etme
sudo kubeadm join :6443 --token --discovery-token-ca-cert-hash sha256:
Bu adım sayesinde, tüm node’lar cluster’a dahil olmuş olur ve Kubernetes’in sağladığı tüm avantajlardan faydalanabilirsiniz.
6. Kubernetes ile Uygulama Dağıtımı
Kubernetes üzerinde bir uygulama dağıtmak oldukça basittir. Örneğin, bir nginx uygulaması dağıtmak için şu komutları kullanabilirsiniz:
# Nginx container’ını çalıştırma
kubectl run nginx --image=nginx --port=80
# Uygulama servisinin oluşturulması
kubectl expose pod nginx --port=80 --type=NodePort
Bu komutlar, nginx uygulamanızı Kubernetes üzerinde çalıştırmanızı sağlar. Artık, bu uygulama herhangi bir node üzerinden erişilebilir olacaktır.
7. Yönetim ve İzleme
Kubernetes üzerinde yönetim ve izleme, genellikle Prometheus, Grafana gibi araçlarla yapılır. Bu araçlarla, sisteminizin sağlık durumunu izleyebilir ve performans metriklerine ulaşabilirsiniz.
Prometheus ve Grafana ile izleme yapmak için aşağıdaki adımları takip edebilirsiniz:
# Prometheus ve Grafana kurulumu
kubectl apply -f https://raw.githubusercontent.com/coreos/prometheus-operator/master/bundle.yaml
Bu araçlar sayesinde Kubernetes cluster’ınızı daha verimli bir şekilde yönetebilirsiniz.
### Sonuç
Kubernetes'in Linux üzerinde kurulumu ve yönetimi, ilk başta karmaşık gibi görünebilir. Ancak adım adım ilerleyerek, güçlü bir konteyner orkestrasyon aracına sahip olabilirsiniz. Kubernetes ile uygulamalarınızı kolayca ölçeklendirebilir, yüksek kullanılabilirlik sağlayabilir ve yönetim süreçlerinizi otomatize edebilirsiniz. Unutmayın, her yeni adım, yeni bir öğrenme fırsatıdır.