Ekibimiz içerisinde sıklıkla kullandığımız Vagrant Box’ları Github üzerinden yayınlama kararı aldık. Bunun ilk adımı olarak sıklıkla kullandığımız Kubernetes Vagrant Box’ı yayınlıyoruz.
Github Enterprisecoding sayfasımız altında yer alan vagrant-boxes deposunda topladığımız vagrant box’lardan Kubernetes’i aşağıdaki adımları takip ederek kullanabilirsiniz.
Başlarken, Kubernetes Vagrant Box’ı kullanabilmek için gerekli olan aşağıdaki gereksinimlerin kurulması gerekli;
Bunlara ek olarak aşağıdaki vagrant eklentilerinin kurulmasını da tavsiye ediyoruz;
- vagrant-env :
vagrant plugin install vagrant-env
- vagrant-host :
vagrant plugin install vagrant-hosts
Git deposu aşağıdaki komutla yerele kopyalanır;
git clone https://github.com/enterprisecoding-ltd/vagrant-boxes
Oluşan vagrant-boxes dizini altındaki kubernetes dizinine gidilir;
cd vagrant-boxes/kubernetes
Vagrant başlatılır;
vagrant up
Kurulum ardından aşağıdaki komutla master sunucuya bağlanabilirsiniz;
vagrant ssh master
Kaldırmak istediğinizde ise kubernetes dizini içerisinde aşağıdaki iki komutu kullanmanız yeterli olacaktır;
vagrant halt vagrant destroy
Kurulumun Özelleştirilmesi
Kuruluma dair bileşenler ve yapılandırmalar parametrik şekildedir. Bu parametreleri kullanabilmek için tavsiye ettiğimiz vagrant-env eklentisini kurmalısınız. Daha sonra .env dosyasının .env.local adıyla bir kopyasını oluşturun. .env.local içerisinde # ile kapalı şekilde yer alan parametreleri açarak değerlerini değiştirin. Aşağıda kullanabileceğiniz parametreler, varsayılan değerleri ve açıklamalarını bulabilirsiniz.
Parametre | Varsayılan Değer | Açıklama |
WORKER_NODES | 2 | Cluster’da yer alacak worker node sayısı |
ACCESS_FROM_HOST | false | Cluster’a host makineden erişilsin mi? Erişim localhost: üzerinden yapılabilir |
MASTER_IP | 192.168.10.100 | Master sunucuya atanacak olan ip adresi. Worker node ip adresleri de bu değere göreceli olarak ardıl olacaktır |
WORKER_MEMORY | 4096 | Worker node’lara atanacak ram miktarı |
WORKER_CPU | 1 | Worker node’lara atanacak cpu miktarı |
MASTER_MEMORY | 2048 | Master node’lara atanacak ram miktarı |
MASTER_CPU | 2 | Master node’lara atanacak cpu miktarı |
INSTALL_HELM | false | Helm v3 kurulsun mu? |
INSTALL_NGINX | false | Nginx ingress controller kurulsun mu? Evet ise, helm v3 kurulumu da yapılacaktır. |
INSTALL_OLM | false | Operator Lifecycle Manager kurulsun mu? |
INSTALL_OPERATORS | Virgül ile ayrılmış olarak, kurulacak olan operator listesi. Liste verilmesi durumunda Operator Lifecycle Manager kurulumu da yapılacaktır. Bileşen isimleri Operator Hub’da yer alan kurulum yaml dosyası adıdır. Örneğin; Grafana operatorü https://operatorhub.io/install/grafana-operator.yaml adresi ile kurulmakta. Bu durumda grafana-operator değeri kullanılmalıdır. Not: listede bileşenler arasında boşluk olmamalıdır. |
Eğer ACCESS_FROM_HOST parametresini true yaptıysanız kubernetes dizininde aşağıdaki komutu çalıştırarak kube config dosyasını güncelleyebilir ve kubectl ile Kubernetes kurulumunu kullanabilirsiniz.
KUBECONFIG=~/.kube/config:kubeconfig kubectl config view --merge --flatten > ~/.kube/config
Yeni Context’e geçiş için aşağıdaki komutu kullanabilirsiniz;
kubectl config use-context kubernetes-admin@kubernetes