Kubernetes Nasıl Kurulur? (minikube ve k3s)

Kubernetes Nasıl Kurulur? (minikube ve k3s)

Kisaca

Tam bir kume kurmadan Kubernetes’e baslamanin en pratik yolu tek makinede minikube (yerelde ogrenme/gelistirme) ya da tek satirla kurulan hafif k3s (uretime de uygun) kullanmaktir. Tam kontrollu, cok dugumlu uretim icin kubeadm tercih edilir; hangi araci secerseniz secin kumeyle ayni kubectl komutlariyla konusursunuz.

  • minikube: en az 2 CPU / 2 GB RAM ve Docker gibi bir surucu; minikube start ile dakikalar icinde tek dugumlu kume ve addon’lar.
  • k3s: curl -sfL https://get.k3s.io | sh - ile kurulur; containerd + Flannel dahil, 1 GB RAM’li VPS’te bile control-plane calisir.
  • kubeadm: runtime ve CNI’yi elle kurdugunuz, tam kontrol gereken buyuk uretim kumeleri icin resmi yol.
  • Teshis uclusu: kubectl get pods, describe pod (Events) ve logs.
  • Uretim oncesi: surumu sabitleyin, 6443 portunu internete acmayin, kalici veri icin PersistentVolume ve yedek planlayin.

Kubernetes (k8s), konteynerleri birçok sunucu üzerinde otomatik olarak dağıtan, ölçekleyen ve yöneten bir orkestrasyon platformudur. Üretimde son derece güçlü olsa da, öğrenmek ve yerelde geliştirmek için tam bir küme kurmaya gerek yoktur; tek bir makinede çalışan minikube ya da hafif bir dağıtım olan k3s ile dakikalar içinde başlayabilirsiniz. Bu rehberde Kubernetes’i bir sunucuya kurmanın pratik yollarını, hangi senaryoda hangi aracın işinize yarayacağını ve günlük hayatta en çok kullanacağınız kubectl komutlarını gerçek örneklerle anlatıyoruz.

Önce küçük bir not: Kubernetes’in sürüm temposu hızlıdır. Bu yazıyı güncellediğimiz dönemde hem minikube hem k3s, Kubernetes 1.35 serisini paketliyor; 1.33 ise destek sonuna yaklaşmış durumda. Yani komutlar değişmez ama bir kurulum yaparken indirdiğiniz sürümün, en az birkaç ay daha güncelleme alacak bir Kubernetes dalına denk gelmesine dikkat edin. Kubernetes 1.x dallarının desteği genelde yaklaşık 14 ay sürer.

Kubernetes denemeleri, demolar ve küçük üretim kümeleri için Türkiye lokasyonunda, düşük gecikmeli ve kolayca ölçeklenebilen bir VPS/sunucu idealdir; küme büyüdükçe düğüm eklemek de kolaylaşır.

Hangi Aracı Seçmeli? minikube, k3s ve kubeadm Karşılaştırması

İhtiyacınıza göre üç ana yol var ve seçim aslında “ne yapmak istediğinize” göre netleşiyor. minikube, yerel geliştirme ve öğrenme için tek düğümlü bir kümeyi bir VM veya Docker konteyneri içinde ayağa kaldırır; addon’ları, dashboard’u ve farklı sürücüleriyle bir “deneme tahtası” gibidir. k3s, tek satırla kurulan, bellek ayak izi çok düşük, kenar (edge) cihazlardan küçük-orta üretim kümelerine kadar uzanan resmi CNCF projesidir. kubeadm ise sıfırdan, her bileşeni sizin kontrol ettiğiniz, çok düğümlü “klasik” üretim kümeleri kurmanın resmi yoludur.

Mail hosting 1 ay ücretsiz

Aşağıdaki tablo seçimi pratikte kolaylaştırır:

Özellik minikube k3s kubeadm
Birincil amaç Yerel öğrenme/geliştirme Hafif üretim, edge, küçük küme Tam kontrollü üretim
Kurulum zorluğu Çok kolay Çok kolay (tek satır) Orta-ileri
Tipik RAM ayak izi ~2 GB+ ~512 MB control-plane Bileşene bağlı, daha yüksek
Çok düğüm Sınırlı (deneme amaçlı) Evet, doğal destek Evet
Üretime uygun mu? Hayır Evet Evet
CNI/runtime kurulumu Otomatik Otomatik (Flannel + containerd dahil) Elle (siz seçersiniz)

Pratik tavsiye: Kubernetes’e yeni başlıyorsanız bilgisayarınızda minikube ile pratik yapın; bir VPS üzerinde gerçek bir küme işletmek istiyorsanız k3s ile başlayın; düğüm sayısı, ağ eklentisi ve etcd topolojisi gibi her kararı kendiniz vermek istediğiniz büyük bir üretim ortamı kuruyorsanız kubeadm‘e geçin.

minikube ile Kurulum (Öğrenme/Geliştirme)

Önkoşullar oldukça mütevazıdır: en az 2 CPU, 2 GB boş RAM, 20 GB boş disk ve bir konteyner/VM sürücüsü. Sürücü olarak en yaygını Docker’dır; bunun yanında KVM, QEMU, Podman, VirtualBox veya Hyper-V de kullanılabilir. Rahat çalışmak için 4 CPU ve 8 GB RAM önerilir, özellikle birden fazla pod ve addon çalıştıracaksanız.

minikube’i kurduktan sonra temel akış şöyledir:

# Kumeyi baslat (varsayilan surucuyu otomatik secer)
minikube start

# Belirli bir surucuyle baslat
minikube start --driver=docker

# Durumu ve tum namespace'lerdeki podlari gor
kubectl get po -A

# Web tabanli panel, durdurma ve tamamen silme
minikube dashboard
minikube stop
minikube delete --all

Kaynak yetersiz kalırsa minikube start --cpus=4 --memory=4096 ile artırabilir, belirli bir Kubernetes sürümünü minikube start --kubernetes-version=v1.35.1 ile sabitleyebilirsiniz. minikube’in en sevilen yanlarından biri addon yönetimidir; örneğin minikube addons enable ingress ile NGINX Ingress denetleyicisini tek komutla devreye alır, gerçek bir kümede günlerce uğraşacağınız kurulumu saniyeler içinde test edebilirsiniz. Çalışan bir uygulamaya tarayıcıdan erişmek için ise minikube service web --url komutu, NodePort servisinizin erişilebilir adresini doğrudan verir.

k3s ile Kurulum (Hafif/Üretim)

k3s, Kubernetes’in resmi olarak sertifikalı, tek bir ikili dosyaya (binary) paketlenmiş hafif sürümüdür. İçinde containerd, Flannel ağ eklentisi, yerel bir DNS ve depolama sağlayıcısı hazır gelir; yani “kur ve çalışır” deneyimi sunar. 100 MB’ın altındaki ikili dosyası ve düşük bellek tüketimi sayesinde 1 GB RAM’li bir VPS’te bile control-plane’i rahatça çalıştırabilirsiniz.

Tek satırla kurulur ve kubeconfig’i otomatik yapılandırır:

# Ana (server) dugumu kur
curl -sfL https://get.k3s.io | sh -

# Kurulumu dogrula
sudo k3s kubectl get nodes

# Ikinci (agent) dugum eklemek icin AGENT makinede calistir:
curl -sfL https://get.k3s.io | K3S_URL=https://ANA_SUNUCU:6443 K3S_TOKEN=TOKEN sh -

Ana sunucudaki katılım token’ı /var/lib/rancher/k3s/server/node-token dosyasındadır. Kubeconfig ise /etc/rancher/k3s/k3s.yaml konumuna yazılır; bu dosyayı kendi makinenize kopyalayıp server: satırındaki adresi sunucunuzun gerçek IP’siyle değiştirirseniz, k3s kümesini uzaktan normal kubectl ile yönetebilirsiniz. Belirli bir Kubernetes sürümünü sabitlemek isterseniz kurulum öncesi INSTALL_K3S_VERSION=v1.35.6+k3s1 gibi bir ortam değişkeni verebilirsiniz.

Birden fazla server düğümüyle yüksek erişilebilir (HA) bir kontrol düzlemi kurmak da mümkündür; bu durumda ilk düğümü --cluster-init bayrağıyla başlatır, ardından diğer server düğümlerini aynı token’la katarsınız. Üç server düğümü, gömülü etcd ile sağlam bir HA temeli oluşturur.

Temel kubectl Komutları

kubectl, hangi yöntemi kullanırsanız kullanın kümeyle konuşan ortak komut satırı aracıdır. Aşağıdakiler günlük işin yüzde sekseninde işinize yarar:

kubectl get nodes                       # dugumler ve durumlari
kubectl get pods -A                     # tum namespace'lerdeki podlar
kubectl create deployment web --image=nginx
kubectl scale deployment web --replicas=3   # 3 kopyaya olceklendir
kubectl expose deployment web --port=80 --type=NodePort
kubectl logs POD_ADI                    # bir podun loglari
kubectl describe pod POD_ADI            # detay ve teshis bilgisi
kubectl get events --sort-by=.lastTimestamp   # son olaylar
kubectl apply -f dosya.yaml             # manifest uygula
kubectl rollout restart deployment web  # podlari sirayla yeniden baslat

Bir şey ters gittiğinde sıra genellikle şudur: kubectl get pods ile durumu görün, Pending ya da CrashLoopBackOff görüyorsanız kubectl describe pod çıktısının en altındaki Events bölümünü okuyun, ardından kubectl logs ile uygulamanın kendi hata mesajına bakın. Bu üçlü, sorunların büyük kısmını dakikalar içinde teşhis eder.

kubeadm Ne Zaman Gerekir?

kubeadm, control-plane’i kubeadm init, worker düğümlerini kubeadm join ile kuran resmi araçtır. minikube ve k3s’in aksine her şeyi otomatik ayağa kaldırmaz; konteyner runtime’ını (containerd gibi) ve ağ eklentisini (Calico, Cilium veya Flannel gibi bir CNI) sizin kurmanızı bekler. Bu “elle kurulum” ilk bakışta zahmetli görünse de, ağ politikalarını, etcd yedekleme stratejinizi ve sürüm yükseltme planınızı tam kontrol etmek istediğiniz büyük üretim kümeleri için tercih sebebidir. Kısacası: deneme ve hafif üretim için k3s, kuralları baştan sona kendiniz yazmak istediğiniz kurumsal üretim için kubeadm.

Üretime Geçmeden Önce Dikkat Edilmesi Gerekenler

  • Kurulum scriptlerini (curl | sh) çalıştırmadan önce içeriğini gözden geçirin. Güvenilir kaynaklardan indirin ve mümkünse sürümü sabitleyin; üretimde “en son ne gelirse” yaklaşımı sürpriz kırılmalara yol açar.
  • kubectl hangi kümeye bağlı olduğunu context üzerinden belirler. Birden fazla kümeyle çalışıyorsanız yanlış ortama komut göndermemek için her oturumda kubectl config current-context ile kontrol edin.
  • minikube tek düğümlüdür; gerçek yüksek erişilebilirlik testleri için çok düğümlü k3s veya kubeadm gerekir. Tek düğüm çökerse uygulamanız da çöker.
  • Verilerinizi düşünün. Kalıcı veri tutan uygulamalarda (veritabanı gibi) PersistentVolume yapılandırmasını ve düzenli yedeklemeyi en baştan planlayın; konteyner ile birlikte verinin de uçabileceğini unutmayın.
  • Ağ güvenliği için kümenin API portunu (6443) internete açık bırakmayın; güvenlik duvarı kuralları ve gerekiyorsa VPN/özel ağ kullanın. Anti-DDoS korumalı bir altyapı, kümeyi dış gürültüden uzak tutar.

Türkiye’de bir küme işletecekseniz altyapının nerede ve nasıl barındığı, gecikme ve veri konumu açısından önemlidir. Sunucu ve bulut çözümlerini İzmir’deki kendi veri merkezimizde, N+1 yedekli güç ve soğutmayla, KVM tabanlı sanallaştırma üzerinde sunuyoruz; düşük gecikme ve istikrarlı ağ, küme düğümleri arasındaki iletişimi de rahatlatır. Daha büyük, çok düğümlü kurgular için bulut sunucu tarafında esnek kaynak ölçeklemesi tercih edilebilir.

Sıkça Sorulan Sorular

Yeni başlayan biri için hangi araç en uygun?

Bilgisayarınızda öğrenmek için minikube en konforlusudur; bir sunucuda gerçek ama hafif bir küme istiyorsanız k3s ile başlayın. kubeadm ileri seviyedir ve genelde tam kontrol gereken üretim için tercih edilir.

k3s üretimde güvenle kullanılır mı?

Evet. k3s resmi olarak sertifikalı bir Kubernetes dağıtımıdır; özellikle kenar cihazları ve küçük-orta ölçekli üretim için yaygın olarak kullanılır. Yüksek erişilebilirlik için üç server düğümü ile gömülü etcd kullanan bir kurgu önerilir.

Kubernetes için kaç sunucu gerekir?

Öğrenme ve test için tek sunucu yeterlidir. Gerçek yüksek erişilebilirlik için ise en az üç düğüm önerilir; böylece bir düğüm çökse de küme ayakta kalır.

minimum donanım ne olmalı?

minikube için en az 2 CPU, 2 GB boş RAM ve 20 GB disk gerekir; rahat çalışmak için 4 CPU ve 8 GB RAM idealdir. k3s ise çok daha hafiftir ve 1 GB RAM’li bir VPS’te bile control-plane’i çalıştırabilir.

Kubernetes ile Docker arasındaki ilişki ne?

Docker imajları Kubernetes’te containerd üzerinden çalıştırılır; ikisi farklı katmanlardır. Docker imaj oluşturma ve paketlemeyle ilgilenir, Kubernetes ise bu imajlardan oluşan konteynerleri kümede dağıtır, ölçekler ve yönetir.

kubectl ayrı mı kurulur?

Şart değil. k3s kendi içinde kubectl getirir (k3s kubectl), minikube’de ise minikube kubectl kullanılabilir. Yine de günlük kullanım için sisteme ayrı bir kubectl kurmak çoğu kişinin tercihidir.

Hangi Kubernetes sürümünü seçmeliyim?

Genel kural, destek penceresi açık güncel bir kararlı dalı seçmektir. Bu rehberin güncellendiği dönemde minikube ve k3s, Kubernetes 1.35 serisini paketliyordu; üretimde sürümü sabitlemek ve en az birkaç ay daha güvenlik güncellemesi alacak bir dal seçmek doğru yaklaşımdır.

k3s ile minikube aynı anda kullanılabilir mi?

Evet. İkisi farklı kümelerdir ve kubeconfig context’leri ile ayrı ayrı yönetilir. Yerelde minikube ile geliştirip, aynı manifestleri bir sunucudaki k3s kümesine uygulamak çok yaygın bir akıştır.

Kubernetes İçin Türkiye’de Sunucu

minikube denemeleri, k3s kümeleri veya çok düğümlü kurgular için İzmir veri merkezimizde, düşük gecikmeli ve ölçeklenebilir VPS ile bulut sunucular.

VPS/Sunucu Çözümleri →

Türkiye'nin En Çok Tavsiye Edilen Domain, Hosting ve Bulut Servis Sağlayıcısı
İnternet sitesi Alastyr İnternet Sitesi
Yazı oluşturuldu 511

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.

Üste dön