VPS sunucularında Kubernetes kurulumu, modern uygulama dağıtımını ölçeklenebilir ve yönetilebilir hale getirmek için kritik bir adımdır.
VPS sunucularında Kubernetes kurulumu, modern uygulama dağıtımını ölçeklenebilir ve yönetilebilir hale getirmek için kritik bir adımdır. Kubernetes, konteynerleştirilmiş uygulamaları otomatik olarak dağıtma, ölçeklendirme ve yönetme yeteneğiyle öne çıkar. Bir VPS ortamında, özellikle tek düğümlü (single-node) bir küme kurarak, geliştiriciler ve sistem yöneticileri kaynakları verimli kullanabilir. Bu rehber, Ubuntu tabanlı bir VPS sunucusunda (örneğin 2 CPU, 4 GB RAM ve 20 GB depolama ile) Kubernetes’i adım adım kurmayı anlatacaktır. Kurulum sırasında güvenlik, performans ve erişilebilirlik ön planda tutulacaktır. Bu süreç, kubeadm aracını kullanarak standart bir yaklaşım izleyecek olup, üretim öncesi testler için idealdir.
VPS sunucunuzu Kubernetes için hazırlamak, sorunsuz bir kurulumun temelini oluşturur. Öncelikle, sunucunuzun Ubuntu 20.04 veya 22.04 LTS sürümünde olduğundan emin olun. Sistem güncellemeleriyle başlayın: sudo apt update && sudo apt upgrade -y komutunu çalıştırarak tüm paketleri güncel tutun. Ardından, gereksiz servisleri durdurun ve güvenlik duvarını yapılandırın. UFW (Uncomplicated Firewall) ile Kubernetes için gerekli portları açın: 6443 (API sunucusu), 2379-2380 (etcd), 10250-10252 (Kubelet) ve 30000-32767 (NodePort servisleri). sudo ufw allow 6443/tcp && sudo ufw enable gibi komutlarla bu ayarları yapın.
Swap alanını devre dışı bırakmak performansı artırır, çünkü Kubernetes statik bellek tahsisi gerektirir. sudo swapoff -a ile anında kapatın ve /etc/fstab dosyasından swap satırını yorum satırı haline getirin. Ayrıca, /etc/modules-load.d/k8s.conf dosyası oluşturup overlay ve br_netfilter modüllerini ekleyin: overlay. Ardından
br_netfiltercat >> /etc/sysctl.d/k8s.conf <<EOF ile ağ köprülemeyi etkinleştirin ve
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOFsudo sysctl --system uygulayın. Bu adımlar, yaklaşık 150 kelimelik bir hazırlık sürecini kapsar ve kümenin stabil çalışmasını sağlar.
Containerd’yi varsayılan runtime olarak kullanacağız, çünkü hafif ve Kubernetes ile uyumludur. Önce mevcut Docker’ı kaldırın: sudo apt remove docker.io containerd runc -y. Kubernetes’in resmi deposunu ekleyin: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg ve depo dosyasını yapılandırın. Güncelleyip containerd yükleyin: sudo apt install containerd.io -y. Ardından sudo mkdir -p /etc/containerd ile dizin oluşturun, containerd config default > /etc/containerd/config.toml ile varsayılan konfigürasyonu alın. Config.toml’de SystemdCgroup = true ayarını yapın ve sudo systemctl restart containerd && sudo systemctl enable containerd ile servisi başlatın. Bu, konteyner yönetimini optimize eder ve kubelet ile entegrasyonu sağlar.
Kubernetes 1.28 sürümünü hedefleyin. Google’ın Kubernetes deposunu ekleyin: sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl. GPG anahtarını indirin ve /etc/apt/sources.list.d/kubernetes.list dosyasını oluşturun. Sonra sudo apt update ile paketleri getirin. Belirli sürümleri yükleyin: sudo apt install -y kubelet=1.28.0-00 kubeadm=1.28.0-00 kubectl=1.28.0-00 ve versiyonları kilitleyin: sudo apt-mark hold kubelet kubeadm kubectl. Bu araçlar, küme başlatma (kubeadm), düğüm yönetimi (kubelet) ve komut satırı etkileşimi (kubectl) için gereklidir. Servisleri etkinleştirin: sudo systemctl enable --now kubelet. Yaklaşık 120 kelimelik bu bölüm, bileşenlerin tutarlı entegrasyonunu garanti eder.
Küme başlatma için sudo kubeadm init --pod-network-cidr=10.244.0.0/16 komutunu çalıştırın (Calico CNI için CIDR). Bu, control-plane’i kurar ve join komutunu verir. Çıktıdaki kubeadm join ... satırını not alın (multi-node için). Kubectl konfigürasyonunu ayarlayın: 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şlem 5-10 dakika sürer ve master düğümü hazır hale getirir. Hata durumunda kubeadm reset ile sıfırlayın.
Ağ eklentisi olarak Calico’yu yükleyin: kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml. Bekleyin ve pod’ları kontrol edin: kubectl get pods -n kube-system. Single-node için taint’i kaldırın: kubectl taint nodes --all node-role.kubernetes.io/control-plane-. Bu, worker pod’larının master’da çalışmasını sağlar. Test için nginx deployment oluşturun: kubectl create deployment nginx --image=nginx && kubectl expose deployment nginx --port=80 --type=NodePort ve kubectl get svc ile NodePort’u bulun. VPS IP:NodePort ile erişin. Bu yapılandırma, VPS kaynaklarını maksimize eder.
Kubernetes VPS kurulumunun tamamlanmasıyla, uygulamalarınızı güvenli ve ölçeklenebilir bir ortamda yönetebilirsiniz. Düzenli güncellemeler (kubeadm upgrade plan) ve izleme araçları (örneğin Prometheus) ekleyerek sistemi güçlendirin. Bu rehberdeki adımlar, pratik bir temel sunar; üretimde yedekleme ve çok düğümlü kümeleri değerlendirin. Başarılı bir kurulum, DevOps süreçlerinizi dönüştürecektir.