Kubeadm ile Kubernetes Cluster Oluşturma

Ortamımızda 3 adet linux/ubuntu sunucu mevcut. Bir tanesi master, diğer ikisi worker node olarak tanımlanıp kurulumlar yapılacaktır.

Aksi durum belirtilene kadar belirtilen tüm adımlar 3 sunucu içinde uygulanması gerekmektedir.

Containerd konfigurasyonunu oluşturalım,

cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF

Gerekli olan modülleri yükleyelim,

sudo modprobe overlay
sudo modprobe br_netfilter

Kubernetes networking için gerkeli olan network konfigurasyonlarını uygulayalım,

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

Uygulanan konfigurasyonları devreye alalım,

sudo sysctl --system

Containerd kurulumunu gerçekleştirelim,

sudo apt-get update && sudo apt-get install -y containerd

Containerd için default konfigurasyon dizinini oluşturalım,

sudo mkdir -p /etc/containerd

Containerd varsayılan konfigurasyonlarını oluşturup, belirtilen konfig dizinine konfigurasyonu kaydedelim,

sudo containerd config default | sudo tee /etc/containerd/config.toml

Mevcut konfig dosyasını oluşturmuş olduğumuz konfigurasyon alanına kayıt ettiğimizden emin olduktan sonra containerd servisini yeniden başlatalım,

sudo systemctl restart containerd

Servisin çalıştığından emin olalım,

sudo systemctl status containerd

Swapı devre dışı bırakalım,

sudo swapoff -a

Reboot sonrası her açılışta swap devreye girmemesi için fstab üzerinden de swapı devre dışı bırakalım,

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

Gerekli olan paketlerin kurulumlarını gerçekleştirelim,

sudo apt-get update && sudo apt-get install -y apt-transport-https curl

GPG Keyimizi indirelim ve keylerimiz arasına ekleyelim,

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

Kubernetes repository listimizi oluşturalım,

cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF

Paket listemizi güncelleyelim,

sudo apt-get update

ve Kubernetes paketlerimizin kurulumuna başlayalım,

sudo apt-get install -y kubelet=1.22.0-00 kubeadm=1.22.0-00 kubectl=1.22.0-00

kubelet, kubeadm ve kubctl paketlerimizin auto update almalarını kapatalım,

sudo apt-mark hold kubelet kubeadm kubectl

Cluster Kurulumu

kubeadm’yi kullanarak control-plane(master) Kubernetes cluster başlatın (Not: Bu yalnızca Control Plane üzerinde gerçekleştirilir):

sudo kubeadm init --pod-network-cidr 192.168.0.0/16 --kubernetes-version 1.22.0

Kubectl için erişimi yapılandıralım,

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

ve Test girişimizi aşağıdaki komut ile gerçekleştirelim,

kubectl get nodes

Calico Networking eklentisi kurulumu

Bu eklenti sadece control-plane (master) üzerinde gerçekleştirilir,

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

Control plane durumları kontrol edilir,

kubectl get nodes

Worker Node’ların Cluster’a dahil edilmesi

Kubernetes Control Plane kurulumu tamamlandığında aşağıdaki şekilde bir çıktı ile karşılaşacaksınız.

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 172.22.1x.2xx:6443 --token d9zilv.ncwdrkXXXXXXX \
        --discovery-token-ca-cert-hash sha256:6474f70d4e774fbXXXXXXXXXXXXXX70e4c744aacefe433

Son 3 satırda belirtilen kubeadm join alanını kopyalayarak Worker nodelarımıza erişim sağlayıp uygulayabiliriz. Eğer bir nedenden dolayı burayı kaçırmışsakta, aşağıdaki komut ile mevcut erişim için gerekli olan tokeni görüntüleyebiliriz,

kubeadm token create --print-join-command

İki worker nodumuzda da ilgili çıktıyı sudo komutu ile uygulayalım,

sudo kubeadm join ...

kubectl get nodes komutu ile clusterimiz ve nodelarımızın durumunu görüntüleyebiliriz, tüm nodlarımızın hazır hale gelmesi biraz zaman alabilir, notready olarak gördüğünüz nodelar için endişenlenmeyip biraz zaman geçtikten sonra tekrardan kontrol edip, herşeyin yolunda olduğunu gözlemleyebiliriz,

kubernetes nodes durumu

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top