Kubeadm ile Kubernetes Cluster Kurulumu 1 – Vagrant ve Virtualbox
  1. Anasayfa
  2. DevOps

Kubeadm ile Kubernetes Cluster Kurulumu 1 – Vagrant ve Virtualbox

0

Uzun soluklu yazı dizimizin ilk nefesini alıyoruz. Öncelikle Kubernetes Cluster’ı için kullanacağımız araçları kısaca tanımaya çalışalım.

Giriş

Vagrant, farklı geliştirme ortamları oluşturmak için kullanılabilecek bir araçtır. Bu, geliştirme ortamına tam olarak benzeyen bir üretim ortamı oluşturmak için kullanılabilir. Öte yandan, Vagrant ‘Bizim sunucuda çalışıyor #@#! ‘ sorununa bir çözümdür.

Virtualbox, ücretsiz ve açık kaynaklı bir hipervizördür. Vagrant, sanal sunucuları Virtualbox üzerinde oluşturacak.

Ubuntu 18.04 Bionic Vagrant Box‘ı.

KubeAdm, minimum eforla Kubernetes Cluster oluşturmamıza yardımcı olur. Kubeadm ayrıca, upgrade, downgrade ve bootstrap tokenlarını belirleme gibi diğer cluster lifecycle işlevlerini de destekler.

Docker, Container teknolojisini kullanarak uygulama oluşturmayı, dağıtmayı ve çalıştırmayı kolaylaştırmak için tasarlanmış bir araçtır. Container, geliştiricinin, kütüphaneler ve diğer bağımlılıklar gibi ihtiyaç duyduğu tüm parçaları içeren bir uygulamayı paketlemesini ve hepsini bir paket olarak göndermesini sağlar. Bunu yaparak, container sayesinde, geliştirici, kodun yazılması ve test edilmesi için kullanılan makineden farklı olabilecek makinenin özel ayarlarından bağımsız olarak uygulamayı diğer Linux makinelerinde çalıştırabilir.

Bu projede Vagrant’ı kullanma amacımız CI/CD süreçlerine uymak ve istenilen kontrollerle en kısa sürede gerekli ortamı oluşturarak devamlılığı sağlamak. Bu sayede cluster sunucularının configlerinin ve diğer paketlerinin birebir olmasını sağlıyor ve VM/leri daha basit yönetiyoruz. İlerleyen yazılara bu yapıyle devam edeceğiz.

Buradan, @Mustafa Kara hocamın kaleme aldığı Vagrant makalesini okuyarak, Vagrant’ı tanıyabilir ve terminolojilere daha hakim olabilirsiniz.

[star_list]

  • Vagrant; Virtualbox’ın yanı sıra Hyper-v, Vmware, Qemu, KVM, Docker ve dahasını, Cloud provider olarakta Azure, AWS, GCP’i desteklemektedir.
  • Kullanacağımız Vagrant Box’ları sadece Virtualbox provider’ını desteklemektedir.

[/star_list]

[yes_list]

  • Uygulanacak adımlarda kullanılacak araçlar hakkında daha fazla bilgi edinmek için verilen bağlantıları inceleyebilirsiniz.

[/yes_list]

[no_list]

  • Virtualbox kullanmadan da manuel işletim sistemi kurulumu ve yapılandırmalarını gerçekleştirip işlemleri uygulayabilirsiniz.
  • Dilerseniz, Vagrant’ın desteklediği diğer provider’lara ait box’ları kullanabilirsiniz.

[/no_list]

Ortamı Hazırlama

Kullanacağımız VM/ler Virtualbox üzerinde çalışacak.

VirtualBox ve Vagrant’ı kuruyoruz.

sudo su
apt install virtualbox
apt install vagrant
apt install git

Vagrant üzerinde gerçekleşecek işlemler proje halinde yer aldığından, bir proje klasörü oluşturuyor ve klasöre giriyorum.

mkdir /home/ugur/Documents/vagrant/18
cd /home/ugur/Documents/vagrant/18

Oluşturduğum klasöre kubernetes cluster ortamında kullanılacak Vagrant boxını ekleyeceğim. Ekleme işleminde kullanılacak boxları https://app.vagrantup.com/boxes/search adresinden görebilir, farklı işletim sistemlerini kullanabilirsiniz. Önemli husus provider olarak Virtualbox’ı desteklemesidir.
Bu projede Ubuntu 18.04 Bionic versiyonunu kullanacağım. Ekleme işlemi bağlantı hızına göre değişebilir.

vagrant box add ubuntu/bionic64
vagrant box list
• ubuntu/bionic64 (virtualbox, 20190409.1.0)

Vagrant kutularımız hazır. Bundan sonra sanal sunucuları yapılandıracağız. Vagrant tetiklediğimizde Vagrantfile config dosyasında bulunan değerlere göre sanal sunucuları oluşturacak ve sunucu yapılandırmalarını tamamlayacak.

Proje klasörünüze https://github.com/ugurcivak/Kubernetes-Cluster/ Proje ortamını indiriyor ve proje klasörüne geçiyorum.

git clone git@github.com:ugurcivak/Kubernetes-Cluster.git
cd Kubernetes-Cluster
mv Vagrantfile /home/ugur/Documents/vagrant/18

Vagrantfile dosyasımızı inceleyelim.

nano Vargantfile

Kubernetes node’ları için box’ları belirtiyor.

Master için, mast.vm.box = "ubuntu/bionic64"
Node için, node.vm.box = "ubuntu/bionic64"

Kubernetes node’ları için ağ yapılandırması.

Master için,

mast.vm.network "public_network", ip: "192.168.1.150", bridge: "wlp3s0"

Node için,

node.vm.network "public_network", ip: "192.168.1.160", bridge: "wlp3s0"

Kubernetes node’ları için kaynak yapılandırması.

Master için,

vb.gui = false
vb.name = "master"
vb.memory = "2048"
vb.cpu=”4”

Node için,

vb.gui = false
vb.name = "node"
vb.memory = "2048"
vb.cpu=”4”

Göründüğü üzere bu Vagrantfile mast ve node adında 2 adet ubuntu bionic işletim sistemine sahip sanal sunucu oluşturuyor. Sanal sunucu oluşturduktan sonra sunucu opsiyonlarını Vagrantfile’da belirtilen değerlere göre güncelleyecek. Host’unuza göre bu değerleri değiştirebilirsiniz.

[star_list]

  • Node sayısı arttırılmak isternise “config.vm.define “node” do |node|” alanından iki end alanına kadar kopyalayıp node2, 3, 4 şeklinde çoğaltılarak en altta yer alan end’i

[/star_list]

Vagrantfile hazır, son haline bakalım.

    config.vm.define "mast" do |mast|
        mast.vm.box = "ubuntu/bionic64"
            mast.vm.network "public_network", ip: "192.168.1.150", bridge: "wlp3s0"
            mast.vm.provider "virtualbox" do |vb|
            vb.gui = false
            vb.name = "master"
            vb.memory = "2048"
	    vb.cpus = "4"
        end
    end
    config.vm.define "node" do |node|
       node.vm.box = "ubuntu/bionic64"
            node.vm.network "public_network", ip: "192.168.1.160", bridge: "wlp3s0"
            node.vm.provider "virtualbox" do |vb|
            vb.gui = false    
            vb.name = "node"
            vb.memory = "2048"
	    vb.cpus = "4"
       end
    end

Vagrant UP

Muhtemelen kullanacağımız bir kaç Vagrant komutunu görelim.

  • vagrant up  – Vagrantfile’da tanımlı configi VM’i kaldırarak canlandırır.
  • vagrant halt – Aktif çalışan VM/leri kapatır.
  • vagrant reload – Aktif çalışan VM/leri yeniden başlatır.
  • vagrant suspend – Aktif çalışan VM/leri uyku moduna alır.
  • vagrant resume – Uyku modunda olan VM/leri aktif hale getirir.
  • vagrant snapshot – VM/lerin anlık görüntülerini alır.
  • vagrant destroy – VM/leri tamamen kaldırır. Aktif çalışan VM/ler üzerinde sadece config kaldırır. Tüm dosyaların silinmesi için makinenin kapalı (halt) durumda olması gerekiyor.
  • vagrant status – VM/lerin durumunun çıktısını verir.
  • vagrant ssh [mast] – VM/lere SSH erişmi gerçekleştirir.
  • vagrant box update  – Vagrant box’ı son versiyona günceller.

Vagrant üzerinde gerekli configleri Vagrantfile dosyamıza yazdık. Bundan sonra Vagrant ile Virtualbox üzerinde sanal sunucuyu oluşturacağız.

Proje klasöründe ilgili komutu çalıştırıyoruz.

vagrant up

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Resim-1

Vagrant up komutunu çalıştırdıktan sonra Vagranfile üzerinde belirtilen opsiyonları gerçekleştirdiğini görüyoruz. Sunucu ve ilk kurulum adımlarında biraz süreç alabiliyor. Tabi bu süreç manuel aksiyona göre kat kat daha kısa vakit alacaktır. Daha sonra yapacağımız up işlemi daha hızlı olacaktır.

Virtualbox’ı çalıştırarak sanal sunucuları kontrol ediyorum.

virtualbox

 

 

 

 

 

 

 

 

 

 

Resim-2

Vagrant, belirttiğimiz gibi Virtualbox üzerinde sanal sunucuları oluşturdu ve çalışır duruma getirdi.

Bir sonraki yazımızda Kubernetes Cluster için sanal sunucu üzerinde gereksinimleri uygulayacağız ardından Kubeadm, Kubelet ve Kubctl kurulumlarını yapacağız.

Şimdilik sanal sunuuclarımızı kapatabiliriz.

vagrant halt

Bir sonraki yazıda up etmek üzere.

Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

https://github.com/ugurcivak/

https://kubernetes.io/docs/home/

 

TAGs:Docker, git, Kubernetes, ubuntu, vagrant, VirtualBox

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Uğur, İstanbul'da doğdu. Ayvansaray Üniversitesi & Bilge Adam tarafından hazırlanan İnternet ve Ağ Teknolojileri bölümünü bitirdi. AYU Siber Güvenlik Yüksek Lisansını tamamladı. Bilge Adam, İsimtescil, Medisana, BDH\NETAŞ firmalarının sistem birimlerinde çeşitli görevler aldı. Kariyerine Deutsche Telekom firmasında Kıdemli Sistem Uzmanı olarak devam ediyor.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

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