Kubespray ile Kubernetes Kurulumu

Ansible

Merhabalar,

Bu yazımda ansible ile kubernetes kurulumunu inceliycez.

Kubespray: Kubespray kendi 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 irdiğ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 oluştu. Ş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,

--

--

Medium independent DevOps publication. Join thousands of aspiring developers and DevOps enthusiasts

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store