Kubeadm ile Debian 11’e Kubernetes Kümesi Nasıl Kurulur?
Kubernetes Cluster’ı Debian 11’e (Bullseye) yüklemek için kolay bir kılavuz mu arıyorsunuz?
Bu sayfadaki adım adım kılavuz, Kubernetes kümesini Kubeadm yardımcı programı ile Debian 11’e nasıl kuracağınızı gösterecektir.
Kubernetes (k8s) kümesi, kapsayıcılı uygulamaları çalıştırmak için kullanılan ana ve çalışan düğümleri içerir. Ana düğüm, kontrol planı olarak çalışır ve çalışan düğümler, gerçek iş yükü için ortam sunar.
Kubernetes Nedir? Makalemize göz atmayı unutmayınız.
Önkoşullar
- Minimum Yüklü Debian 11
- 2 CPU / vCPU
- 2 GB RAM
- 20 GB boş disk alanı
- Yönetici haklarına sahip Sudo Kullanıcısı
- Kararlı İnternet Bağlantısı
Laboratuvar Kurulumu
Gösteri için, aşağıdaki ayrıntılara sahip üç Debian 11 sistemi kullanıyorum,
- Ana Düğüm (k8s-master) – 192.168.1.236
- Çalışan Düğümü 1 (k8s-worker1) – 192.168.1.237
- Çalışan Düğümü 2 (k8s-worker2) – 192.168.1.238
Daha fazla gecikmeden kurulum adımlarına geçelim.
1) Ana Bilgisayar Adını ayarlayın ve /etc/hosts dosyasını güncelleyin
Ana ve çalışan düğümlerde ana bilgisayar adını ayarlamak için hostnamectl komutunu kullanın.
$ sudo hostnamectl set-hostname "k8s-master" // Ana düğümde çalıştır $ sudo hostnamectl set-hostname "k8s-worker1" // 1. işçi düğümünde çalıştır $ sudo hostnamectl set-hostname "k8s-worker2" // 2. işçi düğümünde çalıştır
Tüm düğümlerde /etc/hosts dosyasına aşağıdaki girdileri ekleyin,
192.168.1.236 k8s-master 192.168.1.237 k8s-worker1 192.168.1.238 k8s-worker2
2) Tüm düğümlerde Takas’ı devre dışı bırakın
Kubelet’in sorunsuz çalışması için takasın devre dışı bırakılması önerilir. Takas işlemini kapatmak için ana ve çalışan düğümlerde aşağıdaki komutları çalıştırın.
$ sudo swapoff -a $ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
3) Kubernetes Kümesi için Güvenlik Duvarı Kurallarını Yapılandırma
Debian sistemlerinizde OS güvenlik duvarının etkinleştirilmesi durumunda, sırasıyla ana ve çalışan düğümlerde aşağıdaki bağlantı noktalarına izin verin.
Ana sunucuda (Master), çalıştırın
$ sudo ufw allow 6443/tcp $ sudo ufw allow 2379/tcp $ sudo ufw allow 2380/tcp $ sudo ufw allow 10250/tcp $ sudo ufw allow 10251/tcp $ sudo ufw allow 10252/tcp $ sudo ufw allow 10255/tcp $ sudo ufw reload
Çalışan Düğümlerde,
$ sudo ufw allow 10250/tcp $ sudo ufw allow 30000:32767/tcp $ sudo ufw reload
Not: Debian 11 sistemlerinizde güvenlik duvarı devre dışıysa bu adımı atlayabilirsiniz.
4) Containerd çalışma süresini tüm düğümlere yükleyin
Containerd, endüstri standardı konteyner çalışma zamanıdır, tüm ana ve çalışan düğümlere containerd yüklememiz gerekir.
Containerd’yi yüklemeden önce, tüm düğümlerde aşağıdaki çekirdek parametrelerini ayarlayın.
$ cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf overlay br_netfilter EOF $ sudo modprobe overlay $ sudo modprobe br_netfilter $ cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF
Efektte yukarıdaki değişiklikleri yapmak için, çalıştırın
$ sudo sysctl --system
Şimdi, tüm düğümlerde aşağıdaki apt komutunu çalıştırarak conatinerd’i kurun .
$ sudo apt update $ sudo apt -y install containerd
Containerd’yi Kubernetes ile çalışacak şekilde yapılandırın, tüm düğümlerde komutun altında çalıştırın
$ containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1
Tüm düğümlerde cgroupdriver’ı systemd olarak ayarlayın,
‘ /etc/containerd/config.toml ‘ dosyasını düzenleyin ve ‘ [plugins.”io.containerd.grpc.v1.cri”.containerd.runtimes.runc.options] ‘ bölümünü bulun ve SystemdCgroup = true ekleyin
$ sudo vi /etc/containerd/config.toml
Dosyayı kaydedin ve kapatın.
Tüm düğümlerde containerd hizmetini yeniden başlatın ve etkinleştirin,
$ sudo systemctl restart containerd $ sudo systemctl enable containerd
5) Kubernetes Apt Deposunu Etkinleştir
Tüm düğümlerde Kubernetes apt deposunu etkinleştirin, çalıştırın
$ sudo apt install gnupg gnupg2 curl software-properties-common -y $ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/cgoogle.gpg $ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
6) Tüm düğümlere Kubelet, Kubectl ve Kubeadm’i kurun
kubelet, kubectl ve Kubeadm gibi Kubernetes küme bileşenlerini yüklemek için tüm düğümlerde aşağıdaki apt komutlarını çalıştırın.
$ sudo apt update $ sudo apt install kubelet kubeadm kubectl -y $ sudo apt-mark hold kubelet kubeadm kubectl
7) Kubeadm ile Kubernetes Kümesi Oluşturun
Şimdi, hepimiz Kubernetes kümesi oluşturmaya hazırız, aşağıdaki komutu yalnızca ana düğümden çalıştırın,
$ sudo kubeadm init --control-plane-endpoint=k8s-master
Yukarıdaki çıktı, kontrol düzleminin başarıyla başlatıldığını onaylar. Çıktıda, normal kullanıcı için küme ile etkileşim kurma komutları ve ayrıca herhangi bir çalışan düğümü bu kümeye katılma komutuna sahibiz.
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
Düğüm ve küme bilgilerini almak için aşağıdaki kubectl komutunu çalıştırın,
$ kubectl get nodes $ kubectl cluster-info
Yukarıdaki komutların çıktısı,
‘Kubeadm birleştirme’ komutunu çalıştırarak her iki çalışan düğümü de kümeye katılın.
Not: ‘kubeadm init’ komutunun çıktısından tam komutu kopyalayın. Benim durumumda, aşağıdaki komut
$ sudo kubeadm join k8s-master:6443 --token ta622t.enl212euq7z87mgj \ --discovery-token-ca-cert-hash sha256:2be58f54458d0e788c96b8841f811069019161f9a3dd8502a38c773e5c6ead17
Çalışan Düğüm 1’den Çıktı,
İşçi Nod 2’den Çıktı,
Ana düğümden aşağıdaki komutu çalıştırarak düğümlerin durumunu kontrol edin,
$ kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master NotReady control-plane 23m v1.25.0 k8s-worker1 NotReady <none> 9m27s v1.25.0 k8s-worker2 NotReady <none> 2m19s v1.25.0
Node’ların durumunu hazır hale getirmek için Calico veya flanel gibi POD ağ eklentileri kurmalıyız.
8) Calico Pod Ağ Eklentisini Kurun
Ana düğümde, calico yüklemek için aşağıdaki komutu çalıştırın,
$ kubectl apply -f https://projectcalico.docs.tigera.io/manifests/calico.yaml
Çıktı,
OS güvenlik duvarında Calico bağlantı noktalarına izin verin, tüm düğümlerde ufw komutlarının altında çalıştırın,
$ sudo ufw allow 179/tcp $ sudo ufw allow 4789/udp $ sudo ufw allow 51820/udp $ sudo ufw allow 51821/udp $ sudo ufw allow 4789/udp $ sudo ufw reload
Calico bölmelerinin durumunu doğrulayın, çalıştırın
$ kubectl get pods -n kube-system
Mükemmel, şimdi düğümlerin durumunu tekrar kontrol edin,
Harika, yukarıdaki çıktı, ana ve çalışan düğümlerin hazır durumda olduğunu doğrular. Artık bu küme iş yükü için hazırdır.
9) Kubernetes Küme Kurulumunu Test Etme
Kubernetes küme kurulumunu test etmek için, dağıtım yoluyla nginx tabanlı uygulamayı dağıtmayı deneyelim. Komutların altında çalıştırın,
$ kubectl create deployment nginx-app --image=nginx --replicas 2 $ kubectl expose deployment nginx-app --name=nginx-web-svc --type NodePort --port 80 --target-port 80 $ kubectl describe svc nginx-web-svc
Yukarıdaki komutların çıktısı,
nodeport 30036 ile birlikte aşağıdaki curl komutunu kullanarak nginx tabanlı uygulamaya erişmeyi deneyin .
Not: curl komutunda, çalışan düğümün ana bilgisayar adından birini kullanabiliriz.
$ curl http://k8s-worker1:30036
Yukarıdaki komutun çıktısı, nginx tabanlı uygulamamıza erişebildiğimizi onaylıyor.
Bu kılavuzdakilerin hepsi bu kadar, umarım onu bilgilendirici bulmuşsunuzdur ve Kubernetes kümesini Debian 11’e sorunsuz bir şekilde kurabilmişsinizdir. Lütfen sorularınızı ve geri bildirimlerinizi aşağıdaki yorumlar bölümüne gönderin.