How-To Guides

Ubuntu'da Kubernetes Dağıtımı: DevOps Mühendisleri İçin Kapsamlı Teknik Rehber

Konteynerleştirilmiş uygulamaların orkestrasyonu, modern yazılım teslimatının temel taşı haline geldi. Docker uygulamaların paketlemesini kolaylaştırırken, Kubernetes (genellikle K8s olarak kısaltılır), bu konteynerleri bir makine kümesi üzerinde yönetmek, ölçeklendirmek ve orkestrasyon yapmak için gerekli sağlam altyapıyı sağlar. Kararlı, Debian tabanlı bir ortamı tercih eden sistem yöneticileri ve geliştiriciler için Ubuntu, Kubernetes kümelerini barındırmak için birinci tercih olmaya devam ediyor. Bu rehber, Ubuntu 20.04 LTS veya 22.04 LTS üzerinde yüksek kullanılabilirlikli bir Kubernetes kontrol düzlemi ve işçi düğümlerinin dağıtımının teknik sürecini detaylandırmaktadır.

Ön Gereksinimler ve Sistem Hazırlığı

Kurulum işlemine başlamadan önce, SSH erişimine sahip en az iki Ubuntu sunucusu (bir master/kontrol düğümü ve bir veya daha fazla işçi düğümü) olduğundan emin olun. Kurulum sırasında müdahaleyi önlemek için güvenlik duvarı araçlarını devre dışı bırakmanız veya Kubernetes trafiği için belirli portları yapılandırmanız şiddetle tavsiye edilir. Aşağıdaki adımlar, kümenizdeki tüm düğümlerde gerçekleştirilmelidir.

İlk olarak, Kubernetes sürekli bellek tahsili gerektirdiği ve takas (swap) açıkken çalışamadığı için Swap alanını devre dışı bırakın:

sudo swapoff -a
# Bu değişikliği kalıcı hale getirmek için /etc/fstab dosyasındaki swap satırını yorum satırı yapın
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

Ardından, gerekli çekirdek modüllerini yükleyin. Kubernetes depolama için overlay ve ağ için br_netfilter modüllerine dayanır.

cat <

Ağ bağlantısının doğru çalışmasını sağlamak için, köprülerin trafiği görmesini ve IP yönlendirmesinin etkinleştirilmesini sağlayan sysctl parametrelerini ayarlayın:

cat <

Konteyner Çalışma Zamanı ve Kubelet Kurulumu

Kubernetes, konteyner çalışma zamanını (container runtime) doğrudan yönetmez; bunun yerine containerd, CRI-O veya Docker gibi harici çalışma zamanlarına güvenir. Kubernetes SIG-Node ekibi tarafından önerilen ve şu anda endüstri standardı olan containerd'i kullanacağız.

Bağımlılıkları yükleyerek ve Kubernetes APT deposunu ekleyerek başlayın. Bu, paketleri varsayılan Ubuntu depolarından (eski sürümler barındırabilir) yerine doğrudan resmi K8s kanalından çektiğinizden emin olmanızı sağlar.

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg

# Kubernetes GPG anahtarını ekleyin
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

# Depoyu ekleyin
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

# Paketleri yükleyin
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

Kümenin Başlatılması

Tüm bileşenler yüklendikten sonra, birincil master düğümünüze giriş yapın. Kümeyi başlatmak için kubeadm init komutunu kullanın. Kümeniz bir proxy arkasındaysa veya belirli bir pod CIDR kullanıyorsa, argümanları ayarlamanız gerekebilir.

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Başlatma işlemi başarıyla tamamlandığında, bir kubeadm join komutu içeren bir çıktı göreceksiniz. Bu belirteci (token) kopyalayın; işçi düğümlerini kümeye eklemek için ihtiyacınız olacaktır. Düğümü normal bir kullanıcı olarak kullanmaya başlamak için aşağıdaki komutları çalıştırın:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Bir Pod Ağı Dağıtımı

Kubernetes, pod'ların düğümler arasında birbirleriyle iletişim kurabilmesi için bir konteyner ağ arabirimi (CNI) eklentisine ihtiyaç duyar. Basit ve popüler bir overlay ağ olan Flannel'i dağıtacağız.

kubectl apply -f https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel.yml

Tüm düğümlerin Ready (Hazır) durumunda olup olmadığını aşağıdaki komutla doğrulayın:

kubectl get nodes

Sonuç

Resmi kılavuzları takip etmek ve sistem yapılandırmasına sistematik bir yaklaşım sergilemek, Ubuntu üzerinde Kubernetes dağıtımını basit bir süreç haline getirir. Swap'ı devre dışı bırakarak, doğru çekirdek modüllerini yükleyerek ve resmi Kubernetes APT deposunu kullanarak, üretim seviyesindeki yükler için sağlam bir temel oluşturursunuz. Belirteçleri yönetmek, RBAC yapılandırmak ve düüm yazılımınızı düzenli olarak güncelleyerek kümenizi güvende tutmayı unutmayın. Kümeniz çalışır durumda olduğuna göre, ilk mikroservis mimarinizi dağıtmaya hazırsınız.

Share:

© Technical Tutorials