Kubernetes Nedir ve Neden Kullanılır?
Kubernetes, modern yazılım geliştirme dünyasının en popüler araçlarından biri haline geldi. Bulut tabanlı uygulamalarda otomatikleştirilmiş container yönetimi sağlayarak uygulama dağıtımını, ölçeklendirmeyi ve izlemeyi kolaylaştıran bir platformdur. Peki, neden Kubernetes? Çünkü büyük, karmaşık uygulamaları yönetmek her geçen gün daha zorlaşıyor. Bu yüzden Kubernetes, geliştiricilerin uygulamalarını daha verimli bir şekilde çalıştırmalarını ve yönetmelerini sağlıyor.
Kubernetes Kurulumu İçin Gerekli Adımlar
Kubernetes kurulumuna başlamadan önce bazı temel gereksinimleri yerine getirmelisiniz. Bu adımlarda her şeyin yolunda gitmesi için dikkat etmeniz gereken noktalar var.
Adım 1: Sistem Gereksinimleri
Kubernetes'i kurabilmek için birkaç gereksinime ihtiyacınız olacak. En az 2 GB RAM ve 2 çekirdekli bir işlemciye sahip bir sunucu önerilir. Birden fazla node kuracaksanız, her node için aynı gereksinimleri sağlamanız önemli.
Adım 2: Docker Kurulumu
Kubernetes, Docker konteynerlerini kullanır, bu yüzden öncelikle Docker’ı kurmanız gerekir. Docker’ı yüklemek için şu komutları kullanabilirsiniz:
sudo apt-get update
sudo apt-get install -y docker.io
sudo systemctl enable docker
sudo systemctl start docker
Adım 3: Kubernetes Paketlerini Kurma
Kubernetes’i kurmak için gerekli araçları yüklemelisiniz. Bunun için "kubeadm", "kubelet" ve "kubectl" araçları gereklidir. Aşağıdaki komutları kullanarak bunları kurabilirsiniz:
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates 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 /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
Adım 4: Kubernetes Cluster Kurulumu
Kubernetes cluster'ını başlatmak için "kubeadm" komutunu kullanacağız. Bu komut, Kubernetes master node’unu kurarak cluster'ı başlatır. Aşağıdaki komutu kullanarak master node’unu başlatabilirsiniz:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
Komut çalıştıktan sonra bir çıkış alırsınız, bu çıktıyı dikkatlice not edin çünkü diğer node’ları cluster’a dahil etmek için kullanacağız.
Adım 5: Kubectl Yapılandırması
Cluster’ınızı yönetebilmek için "kubectl" komut satırı aracını yapılandırmanız gerekir. Bu, Kubernetes cluster'ınız ile iletişim kurmak için kullanılır. Aşağıdaki komut ile "kubectl" yapılandırmasını yapabilirsiniz:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Adım 6: Pod Ağı Yapılandırması
Cluster'ınızda pod'lar arasında iletişim kurabilmesi için ağ yapılandırması yapmanız gerekir. Flannel gibi bir ağ çözümü kullanabilirsiniz. Aşağıdaki komut ile Flannel'ı yükleyebilirsiniz:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Cluster Yönetimi ve İzleme
Kubernetes cluster’ınızı kurduktan sonra, onu yönetmek ve izlemek önemlidir. Cluster yönetiminin temel adımlarından biri, node’ların durumunu izlemektir. Aşağıdaki komutla tüm node'larınızın durumunu görebilirsiniz:
kubectl get nodes
Bu komut, cluster’ınızdaki tüm node’ların durumunu gösterir. Eğer bir node çalışmıyorsa, onu yeniden başlatmak için şu komutu kullanabilirsiniz:
kubectl delete node [NODE_NAME]
Pod Yönetimi
Pod'lar, Kubernetes'in en küçük yapı taşıdır. Bir pod’u başlatmak için aşağıdaki komutu kullanabilirsiniz:
kubectl run [POD_NAME] --image=[IMAGE_NAME] --restart=Never
Kubernetes ile bir uygulama çalıştırdığınızda, pod’lar aracılığıyla uygulamanızın yönetimini kolayca yapabilirsiniz.
Uygulama Dağıtımı
Uygulama dağıtımı yaparken, bir "Deployment" oluşturmak çok önemlidir. Deployment, uygulamanın versiyonlarını yönetir ve otomatik olarak güncellemeleri uygulamanıza olanak tanır. Aşağıdaki komut ile bir deployment oluşturabilirsiniz:
kubectl create deployment [DEPLOYMENT_NAME] --image=[IMAGE_NAME]
Uygulamanızı oluşturduktan sonra, bu deployment'ı ölçeklendirebilirsiniz. Örneğin, pod sayısını iki katına çıkarmak için şu komutu kullanabilirsiniz:
kubectl scale deployment [DEPLOYMENT_NAME] --replicas=2
Cluster’ı Güvenli Hale Getirme
Kubernetes cluster'ınızı güvenli tutmak, uygulamanızın sağlığı açısından çok önemlidir. Cluster’ınızı güvenli tutmanın birkaç yolu vardır:
1. Role-Based Access Control (RBAC) kullanarak yetkilendirme yapın.
2. Ağ politikaları uygulayarak pod’lar arasında iletişimi kontrol edin.
3. Güncellemeleri takip edin ve Kubernetes’in en son sürümüne sahip olun.
Sonuç
Kubernetes, büyük uygulamaları yönetmek için güçlü bir araçtır ve kurulumu ile yönetimi, zamanla alışkanlık haline gelir. Bu yazıda, Kubernetes kurulumundan başlayarak, cluster yönetimi, uygulama dağıtımı ve güvenlik gibi temel adımları inceledik. Kubernetes ile uygulamalarınızı daha verimli bir şekilde çalıştırabilir, hızlıca ölçeklendirebilir ve yönetebilirsiniz.
Yavaşça Kubernetes dünyasına adım atarken, her adımın bir öğrenme fırsatı sunduğunu unutmayın. Bu yolculukta yeni beceriler kazanarak, bir Kubernetes uzmanı olma yolunda emin adımlarla ilerleyeceksiniz.