tutorial, kubernetes,

Kubeadm ile Kubernetes'in Ubuntu 22.04'e Kurulumu

Hami BerKay Aktaş Hami BerKay Aktaş Follow Aug 04, 2023 · 5 mins read
Kubeadm ile Kubernetes'in Ubuntu 22.04'e Kurulumu
Paylaş

Kubeadm ile Kubernetes Kurulumu

Önkoşullar Bu kılavuzda, bir ana düğüm ve iki çalışan düğüm kullanıyoruz. Aşağıda, her düğümdeki sistem gereksinimleri verilmiştir,

  • Minimum kurulum Ubuntu 22.04
  • En az 2GB RAM veya daha fazlası
  • Minimum 2 CPU çekirdeği / veya 2 vCPU
  • /var veya üzerinde 20 GB boş disk alanı
  • Yönetici haklarına sahip Sudo kullanıcısı
  • Her düğümde İnternet bağlantısı

Laboratuvar Kurulumu

  • Master Node: 192.168.1.173 – k8smaster.example.net
  • İlk Worker Node: 192.168.1.174 – k8sworker1.example.net
  • İkinci Worker Node: 192.168.1.175 – k8sworker2.example.net

1- Her Düğümde ana bilgisayar adını ayarlayın

Ana düğümde oturum açın ve hostnamectl komutunu kullanarak ana bilgisayar adını ayarlayın,

$ sudo hostnamectl set-hostname "k8smaster.example.net"
$ exec bash

Çalışan düğümlerde çalıştırın

# 1st worker node
$ sudo hostnamectl set-hostname "k8sworker1.example.net"   

# 2nd worker node
$ sudo hostnamectl set-hostname "k8sworker2.example.net"   
$ exec bash

Her düğümde /etc/hosts dosyasına aşağıdaki domainleri tanımlayın.

192.168.1.173 k8smaster.example.net k8smaster
192.168.1.174 k8sworker1.example.net k8sworker1
192.168.1.175 k8sworker2.example.net k8sworker2

2- Swap’i Kapatma & Kernel Parametrelerini Ekleme

Takas işlemini devre dışı bırakmak için swapoff ve sed komutunun altında yürütün. Tüm düğümlerde aşağıdaki komutları çalıştırdığınızdan emin olun.

sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

Aşağıdaki çekirdek modüllerini tüm düğümlere yükleyin,

$ sudo tee /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
$ sudo modprobe overlay
$ sudo modprobe br_netfilter

Kubernet’ler için aşağıdaki Çekirdek parametrelerini ayarlayın, tee komutunun altında çalıştırın

$ sudo tee /etc/sysctl.d/kubernetes.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF 

Yukarıdaki değişiklikleri yeniden yükleyin, çalıştırın

sudo sysctl --system

3- Containerd Runtime’ı Kurun

Bu kılavuzda, Kubernetes kümemiz için containerd runtime kullanıyoruz. Bu nedenle, containerd’yi kurmak için önce bağımlılıklarını kurun.

sudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates

Docker deposunu etkinleştir

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Şimdi, containerd’yi yüklemek için aşağıdaki apt komutunu çalıştırın.

sudo apt update
sudo apt install -y containerd.io

Containerd’yi, systemd’yi cgroup olarak kullanmaya başlayacak şekilde yapılandırın.

containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1
sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml

Containerd hizmetini yeniden başlatın ve etkinleştirin

sudo systemctl restart containerd
sudo systemctl enable containerd

4- Kubernetes’ler için Apt Deposu Ekleyin

Kubernetes paketi, varsayılan Ubuntu 22.04 paket havuzlarında mevcut değildir. Bu yüzden kubernet depoları eklememiz, aşağıdaki komutu çalıştırmamız gerekiyor,

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/kubernetes-xenial.gpg
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

Not: Bu kılavuzu yazarken, Xenial en son Kubernetes deposudur ancak depo Ubuntu 22.04 (Jammy Jellyfish) için kullanılabilir olduğunda, xenial kelimesini ‘apt-add-repository’ komutunda ‘jammy’ ile değiştirmeniz gerekir.

5- Kubectl, Kubeadm ve Kubelet’i kurun

Depoları ekledikten sonra tüm düğümlere kubectl, kubelet ve Kubeadm yardımcı programı gibi Kubernetes bileşenlerini kurun. Aşağıdaki komut dizisini yürütün,

sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

6- Kubernetes Kümesini Kubeadm ile Başlatın (Master için)

Artık hepimiz Kubernetes kümesini başlatmaya hazırız. Aşağıdaki Kubeadm komutunu yalnızca ana düğümde çalıştırın.

sudo kubeadm init --control-plane-endpoint=k8smaster.example.net

Yukarıdaki komutun çıktısı,

kubeadm-init

Başlatma tamamlandıktan sonra, çalışan düğümlerin kümeye nasıl katılacağına ilişkin talimatları içeren bir mesaj göreceksiniz. İleride başvurmak için kubeadm birleştirme komutunu not edin.(kubeadm join ….)

Bu nedenle, küme ile etkileşime başlamak için ana düğümde 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

ardından, küme ve düğüm durumunu görüntülemek için aşağıdaki kubectl komutlarını çalıştırmayı deneyin

kubectl cluster-info
kubectl get nodes

Çıktı,

kubeadm-cluster-info

7- Worker Nodeları Clustere Ekleme

Her çalışan düğümde, 6. adımda ana düğümü başlattıktan sonra daha önce not aldığınız kubeadm birleştirme komutunu kullanın. Bunun gibi bir şey görünmelidir:

$ sudo kubeadm join k8smaster.example.net:6443 --token vt4ua6.wcma2y8pl4menxh2 \
   --discovery-token-ca-cert-hash sha256:0494aa7fc6ced8f8e7b20137ec0c5d2699dc5f8e616656932ff9173c94962a36

Her iki çalışan düğümden çıktı,

Woker1-Join

Woker2-Join

Çalışan düğümlerden alınan yukarıdaki çıktı, her iki düğümün de kümeye katıldığını doğrular. Kubectl komutunu kullanarak ana düğümden düğümlerin durumunu kontrol edin,

kubectl get nodes

Node-Status

Gördüğümüz gibi, düğümlerin durumu ‘ Not Ready ‘, yani onu aktif hale getirmek için. CNI (Container Network Interface) veya Calico, Flannel ve Weave-net gibi ağ eklentileri kurmalıyız.

8- Calico Ağ Eklentisini Kurun

Kümedeki bölmeler arasında iletişimi etkinleştirmek için bir ağ eklentisi gerekir. Ana düğümden Calico ağ eklentisini yüklemek için aşağıdaki kubectl komutunu çalıştırın,

kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml

Yukarıdaki komutların çıktısı aşağıdaki gibi görünecektir,

Install-Calico

Kube-system namespacedeki podların durumunu kontrol edelim,

kubectl get pods -n kube-system

Çıktı

kubesys

Mükemmel, düğümlerin durumunu da kontrol edin.

kubectl get nodes

node-status

Harika, yukarıdaki resim düğümlerin aktif düğüm olduğunu onaylıyor. Artık Kubernetes clusterımızın çalıştığını söyleyebiliriz. Başarı ile kubernetes cluster kurulumunu kudeadm ile gerçekleştirmiş olduk.

Bu bir çeviri yazıdır kaynakça da çeviri kaynağı verilmiştir

kaynak:

https://www.linuxtechi.com/install-kubernetes-on-ubuntu-22-04/

Hami BerKay Aktaş
Written by Hami BerKay Aktaş Follow
Hami BerKay Aktaş Blog sayfası kişisel bilgi birikimime dair şeyler paylaşıyorum.