Kubernetes, konteynerleştirilmiş uygulamaları otomatik olarak dağıtan, ölçekleyen ve kendi kendini onaran açık kaynaklı bir orkestrasyon platformudur. Bu rehber temel kavramları (Pod, Node, Deployment, Service) açıklar ve K3s ile tek bir Ubuntu VPS üzerinde çalışan gerçek bir cluster kurar.
Kubernetes'i anlamak için önce birbirine bağlı dört kavramı ayırt etmek gerekir.
Bir veya birden fazla konteyneri barındıran, Kubernetes'in yönettiği en küçük dağıtılabilir birimdir.
Pod'ların üzerinde çalıştığı fiziksel veya sanal sunucudur; cluster bir veya daha fazla node'dan oluşur.
Pod'ların istenen sayıda ve durumda çalışmasını garanti eden, güncellemeleri ve geri alma işlemlerini yöneten kaynaktır.
Değişen Pod IP'lerinin arkasında sabit bir ağ adresi ve yük dengeleme sağlayan soyutlama katmanıdır.
Tek bir sunucuda birkaç konteyner çalıştırmak `docker run` ile kolaydır. Sorun, konteyner sayısı ve sunucu sayısı arttığında başlar.
Bir konteyner çökerse veya node erişilemez olursa Kubernetes onu otomatik olarak yeniden başlatır veya sağlıklı bir node'a taşır.
Replika sayısını tanımlamak yeterlidir; hangi node'da hangi Pod'un çalışacağına zamanlayıcı karar verir.
Rolling update stratejisi, yeni sürüm sağlıklı hale gelmeden eski Pod'ları kapatmaz.
Aynı manifest dosyaları yerel test ortamından üretim cluster'ına neredeyse değişiklik yapılmadan taşınabilir.
K3s, Rancher tarafından geliştirilen, tek binary olarak dağıtılan, üretime uygun hafif bir Kubernetes dağıtımıdır. Küçük ve orta ölçekli iş yükleri için tam Kubernetes'e göre çok daha az kaynak tüketir.
Ubuntu 24.04 VPS'i güncelleyin, en az 2 vCPU ve 2 GB RAM ayırın, gerekli 6443 portunu güvenlik duvarında açın.
Resmî kurulum betiği hem kubelet'i hem de yerleşik containerd'i tek adımda yapılandırır ve systemd servisi olarak başlatır.
K3s, kubeconfig dosyasını /etc/rancher/k3s/k3s.yaml içine yazar; node durumunu kontrol ederek kurulumu doğrulayın.
nginx imajından basit bir Deployment oluşturup Pod'ların Running durumuna geçtiğini izleyin.
NodePort tipi bir Service tanımlayarak Deployment'ı sunucunun IP adresi üzerinden erişilebilir hale getirin.
Replika sayısını artırıp azaltarak Kubernetes'in Pod'ları otomatik olarak nasıl yönettiğini gözlemleyin.
sudo apt update && sudo apt upgrade -y sudo ufw allow 6443/tcp
curl -sfL https://get.k3s.io | sh -
sudo k3s kubectl get nodes -o wide
sudo k3s kubectl create deployment nginx-demo --image=nginx:stable sudo k3s kubectl get pods
sudo k3s kubectl expose deployment nginx-demo --port=80 --type=NodePort sudo k3s kubectl get svc nginx-demo
sudo k3s kubectl scale deployment nginx-demo --replicas=3 sudo k3s kubectl get pods -o wide
Docker, konteynerleri oluşturan ve çalıştıran bir araçtır. Kubernetes ise birden fazla sunucudaki çok sayıda konteyneri otomatik olarak dağıtan, ölçekleyen ve onaran bir orkestrasyon katmanıdır; genellikle konteyner çalışma zamanı olarak containerd kullanır.
K3s, aynı Kubernetes API'sini sunan ancak daha az bellek ve disk kullanan, tek binary olarak dağıtılan bir dağıtımdır. Küçük cluster'lar, edge cihazlar ve gelişim ortamları için önerilir; API uyumluluğu sayesinde öğrenilen komutlar tam Kubernetes'te de geçerlidir.
Öğrenme, geliştirme ve düşük trafikli uygulamalar için evet. Yüksek erişilebilirlik gerektiren üretim iş yükleri için en az üç node'lu (kontrol düzlemi dahil) bir cluster önerilir.
K3s için pratikte en az 1 vCPU ve 512 MB RAM yeterlidir, ancak birkaç Deployment çalıştırmak için 2 vCPU ve 2 GB RAM daha gerçekçi bir başlangıç noktasıdır.
Trafik ve ekip büyüklüğüne bağlıdır. Tek sunuculu basit uygulamalar için Docker Compose genellikle yeterlidir; birden fazla servis, otomatik ölçekleme veya sıfır kesintili dağıtım ihtiyacı doğduğunda Kubernetes'e geçiş mantıklı hale gelir.
Evet. Root/SSH erişimi olan uygun bir Ubuntu VPS üzerinde K3s veya tam Kubernetes kurulumu yapılabilir; kaynak ihtiyacı çalıştıracağınız Pod sayısına göre belirlenmelidir.
NVMe disk, güncel çekirdek ve tam root erişimiyle Kubernetes ve container iş yükleri için hazır Linux VPS paketlerimizi inceleyin.