Tek Sunucu Kubernetes Kurulumu (Ubuntu 24.04)

Ubuntu 24.04 üzerinde tek sunucuda Kubernetes kurulumu için basit ve hızlı bir rehber. Bu kurulum, geliştirme ortamları ve küçük projeler için idealdir.

Ön Gereksinimler

  • Ubuntu 24.04 LTS
  • Root veya sudo yetkisi
  • Minimum 2GB RAM (önerilen 4GB+)
  • En az 20GB disk alanı

1. Sistem Güncellemesi

sudo apt update && sudo apt upgrade -y

2. Swap'ı Devre Dışı Bırakma

Kubernetes, swap'ın kapalı olmasını gerektirir. Bu adımı kurulumun başında yapmak önemlidir:

# Geçici olarak swap'ı kapat
sudo swapoff -a

# Kalıcı olarak devre dışı bırak
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

3. Kernel Modüllerini Yükleme ve Network Ayarları

Kubernetes için gerekli kernel modüllerini yükleyin ve network ayarlarını yapılandırın:

# Gerekli modülleri yükle
sudo modprobe overlay
sudo modprobe br_netfilter

# Kalıcı hale getir
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

# Network bridge ayarları
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

# Ayarları uygula
sudo sysctl --system

4. Container Runtime Kurulumu (containerd)

Kubernetes için containerd kurulumu:

# containerd kurulumu
sudo apt install -y containerd

# containerd servisini başlat ve etkinleştir
sudo systemctl enable --now containerd

# Durum kontrolü
sudo systemctl status containerd

5. Kubernetes Repo Ekleme

Kubernetes resmi repository'sini ekleyin. Bu repo otomatik olarak son stabil sürümü (şu anda 1.36) sağlar:

# GPG anahtarı ekle
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.36/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

# Repository ekle (otomatik olarak son stabil sürümü kullanır)
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.36/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

# Paket listesini güncelle
sudo apt update

Not: v1.36 repo'su otomatik olarak bu sürümün en son patch sürümünü sağlar. Farklı bir major/minor sürüm istiyorsanız (örneğin v1.34), URL'deki sürüm numarasını değiştirebilirsiniz.

6. Kubernetes Bileşenlerini Kurma

Repo'dan son stabil sürümü (1.36.x) otomatik olarak kurmak için:

# Son stabil sürümü kur (sürüm belirtmeden - otomatik olarak 1.36.x'in en son patch sürümü kurulur)
sudo apt install -y kubelet kubeadm kubectl

# Sürümleri sabitle (güncellemelerden korumak için)
sudo apt-mark hold kubelet kubeadm kubectl

7. containerd Yapılandırması

# containerd için systemd cgroup driver'ı etkinleştir
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml

# systemd cgroup driver'ı etkinleştir
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml

# containerd'i yeniden başlat
sudo systemctl restart containerd

8. Kubernetes Cluster'ı Başlatma

# Cluster'ı başlat (son stabil sürüm ile)
sudo kubeadm init --pod-network-cidr=10.244.0.0/16

# Kurulum tamamlandıktan sonra çıktıda gösterilen komutları çalıştırın
# Örnek:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

9. Pod Network Eklentisi Kurulumu (Flannel)

# Flannel network eklentisini kur
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

# Pod'ların hazır olmasını bekle
kubectl get pods -n kube-flannel --watch

Not: latest tag'i en son stabil sürümü otomatik olarak kullanır.

10. Worker Node Olarak Ekleme (Opsiyonel)

Eğer bu sunucuyu worker node olarak kullanmak isterseniz, master node'dan aldığınız kubeadm join komutunu çalıştırın. Tek sunucu kurulumunda bu adım genellikle gerekli değildir.

11. Tek Node'da Pod Çalıştırma

Varsayılan olarak master node'da pod çalıştırılamaz. Tek sunucu kurulumunda bunu etkinleştirmek için:

# Master node'da pod çalıştırmaya izin ver
kubectl taint nodes --all node-role.kubernetes.io/control-plane-

12. Kurulum Doğrulama

# Node durumunu kontrol et
kubectl get nodes

# Tüm pod'ları listele
kubectl get pods --all-namespaces

# Cluster bilgilerini görüntüle
kubectl cluster-info

Hızlı Test

Basit bir test pod'u çalıştırarak kurulumu test edin:

# Test pod'u oluştur
kubectl run nginx-test --image=nginx

# Pod durumunu kontrol et
kubectl get pods

# Pod'u sil
kubectl delete pod nginx-test

Sürüm Kontrolü

Kurulu sürümleri kontrol etmek için:

# Kubernetes sürümü
kubectl version --client

# Kubeadm sürümü
kubeadm version

# Kubelet sürümü
kubelet --version

Yaygın Sorunlar

containerd servisi başlamıyor

# containerd durumunu kontrol et
sudo systemctl status containerd

# Log'ları incele
sudo journalctl -u containerd

Pod'lar Pending durumunda

# Pod detaylarını kontrol et
kubectl describe pod <pod-name>

# Network eklentisini kontrol et
kubectl get pods -n kube-flannel

Node NotReady durumunda

# Node detaylarını kontrol et
kubectl describe node

# Kubelet log'larını incele
sudo journalctl -u kubelet -f

Özet

Bu kurulum ile Ubuntu 24.04 üzerinde tek sunucuda çalışan bir Kubernetes cluster'ı (1.36+) elde edersiniz. Tüm kurulum adımları son stabil sürümü otomatik olarak kullanacak şekilde yapılandırılmıştır.

Önemli Notlar:

  • Kubernetes 1.36, şu anda son stabil sürümdür
  • Repo yapılandırması otomatik olarak en son patch sürümünü sağlar
  • Production ortamları için multi-node cluster önerilir
  • Düzenli backup alın
  • Güvenlik güncellemelerini takip edin
  • Resource limit'leri ayarlayın

Faydalı Komutlar

# Cluster durumunu kontrol et
kubectl get all --all-namespaces

# Node kaynaklarını görüntüle
kubectl top nodes

# Pod kaynaklarını görüntüle
kubectl top pods

# Cluster'ı sıfırla (gerekirse)
sudo kubeadm reset

Bu Yazıyı Paylaş: