İlginizi Çekebilir
  1. Ana Sayfa
  2. Container
  3. Kubeadm ile Kubernetes Cluster Kurulumu 1 – Vagrant ve Virtualbox

Kubeadm ile Kubernetes Cluster Kurulumu 1 – Vagrant ve Virtualbox

Kubernetes-Virtualbox-Vagrant

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.

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

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 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.

Vagrantfile dosyasımızı inceleyelim.

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

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

Master için,

Node için,

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

Master için,

Node için,

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.

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.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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.

 

 

 

 

 

 

 

 

 

 

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.

Bir sonraki yazıda up etmek üzere.

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

https://github.com/ugurcivak/

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

 

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

Yorum Yap

Yazar Hakkında

Uğur, İstanbul'da doğdu. Ayvansaray Üniversitesi & Bilge Adam tarafından hazırlanan İnternet ve Ağ Teknolojileri bölümünü bitirdi. Lisansını tamamladıktan sonra, AYU Siber Güvenlik YL'a başladı. Bilge Adam, İsimtescil, Goldmaster/MaestroPanel firmalarında görev aldı. Kariyerine BDH\NETAŞ firmasında Kurumsal Sistem ve Danışmanlık Hizmetlerinde Uzman olarak devam ediyor.

Yorum Yap