Kubespray ile Kubernetes Kurulumu

Ansible

Deniz TÜRKMEN
3 min readSep 26, 2022

Merhabalar,

Bu yazımda ansible ile kubernetes kurulumunu inceliycez.

Kubespray: On-prem sunucularımıza veya cloud sunucularına (awazure-cgloud) ansible kullanarak kubernetes clusterı oluşturmamıza yarayan bir tooldur.

Kurulum yapacağımız makinelere ssh-keygen leri gönderelim.

ssh-copy-id root@192.168.1.32ssh-copy-id root@192.168.1.20

Ansible kurulum yapılacak gerekli ayarlamaları yaptığımıza göre şimdi de kubespray reposunu indirelim.

Repository local’imize indirdikten sonra,

  • Python3
  • Pip3 versiyonuna bakalım.

Note: Gerekli bağımlılıkları Python ile yükleyeceğimiz için kurulum yapacağımız yani repository’i indirdiğimiz makinede python ve pip3 kurmak zorundayız.

which python3sudo apt updatesudo apt upgrade -ysudo apt install python3sudo apt install python3-pip

Gereksinimleri kurduğumuza göre indirdiğimiz repository kubespray folderına geçelim.

sudo pip3 install -r requirements.txt

Komutu ile yükleyelim.

Invertory listesini kopyalayalım.

sudo cp -rfp inventory/sample inventory/mycluster

Kurulum yapacağımız IP adreslerini tanımlıyoruz.

sudo declare -a IPS=(192.168.1.32 192.168.1.20)

Config file girdiğimiz IP’leri eklemek için,

sudo CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}

Şimdide loadbalancer config dosyası aşağıdaki dosyada görebilirsiniz. Biz default değerlerle devam edecez ve bir loadbalancer kurmuycaz.

sudo vim kubespray/inventory/mycluster/group_vars/all/all.yaml

k8s-cluster.yaml dosyasına bakacak olursak

sudo vim inventory/mycluster/group_vars/k8s_cluster/k8s-cluster-yaml
  • Burada kubernetes versiyonu değiştirebiliriz. Bu k8s-cluster.yaml kurulum dosyasıdır.

Şimdide ansible ile kurulum başlayabiliriz.

sudo suansible-playbook -i inventory/mycluster/hosts.yaml --become 
--become-user=root cluster.yml -Kk

Eğer yukarıdaki komutu çalıştırdığınızda aşağıdaki resimdeki gibi bir hata alırsanız.

  • Ansible invertory’sinde olan tüm makinelere sshpass yüklemelisiniz.
sudo apt updatesudo apt install -y sshpass

Yükleme işlemi bittikten sonra cluster kontrol etmek için,

kubectl get nodes -owide

Nginx Deployment’ı yapıp test edelim.

kubectl create deployment nginx --image=nginxkubectl get pods

Deployment başarılı şekilde gerçekleştirildi. Şimdide servis oluşturup dışarıya açalım.

kubectl expose deployment nginx --type=NodePort --port=808 --name=my-servicekubectl get svc

Tarayıcıdan “192.168.1.32:32364” gittiğimizde,

--

--

Deniz TÜRKMEN
Deniz TÜRKMEN

No responses yet