Kubespray ile Kubernetes Kurulumu
Ansible
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,
Bu yazımızın da sonuna gelmiş bulunmaktayız. Araştırmalarım ve sektörde karşılaştığım senaryolar üzerine yazılarımı yazmaya devam edeceğim. Umarım faydalı bir yazı olmuştur. Yazımı okuduğunuz için teşekkürler.
Referanslar;