Docker ve Kubernetes Kurulumu: VirtualBox+CenOS7+Docker+Minikube
Herkese merhaba. Bu yazımda eğitim veya geliştirme amaçlı Docker ve Kubernetes (Minikube) ortamını nasıl kuracağımızdan bahsedeceğim. Peşinen söyleyeyim ki Kubernetes değil, üzerinde Kubernetes kullanabileceğimiz Minikube kuracağız.
Konteynırlaşma trendi artarak devam ediyor. Yakın bir zamanda “Hala Docker bilmiyor musun? Cahil misin nesin?” muhabbetiyle karşılaşabilirsiniz. Sadece Docker olsa iyi bir de bunun Kubernetes’i var.
Elbette bir çok kurulum seçeneği var. Ben ana işletim sistemine (Windows veya Mac) doğrudan kurmak yerine Virtualbox veya VmWare üzerinde hazır kurulu bir CentOS7 linux işletim sistemine nasıl kurulum yaparız onu göstereceğim. Bu yazıyı takip edebilmeniz için bir ön gereksinim bu: gerçek veya sanal bir CentOS7. Diğer işletim sistemleri için de kurmak mümkün elbette ancak bire bir bu yazıda ele alınmayacaktır.
Kurulum
Önce Docker kuracağız ardından da Minikube. Minikube, Kubernetes eğitim/geliştirme ortamı için sunulan bir çözüm. Tek node üzerinde her şeyi topluyorsunuz. Minikube’un da kendine göre kurulum ön gereksinimleri var özellikle sanallaştırma. Burada Docker kullanıyor olacağız. Ayrıca bu vm’in asgari şu kaynaklara sahip olması gerekir:
2 CPUs or more
2GB of free memory
20GB of free disk space
Internet connection
Docker Kurulumu
Eski versiyonları kaldıralım.
[train@localhost ~]$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
utils paketini kuralım
[train@localhost ~]$ sudo yum install -y yum-utils
Docker community edition reposunu işletim sistemimize ekleyelim.
[train@localhost ~]$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
Docker’ı paket yöneticimiz olan yum ile kuralım.
[train@localhost ~]$ sudo yum -y install docker-ce docker-ce-cli containerd.io
Docker’ı başlatalım.
[train@localhost ~]$ sudo systemctl start docker
Docker çalışıyor mu? Durumunu görelim.
[train@localhost ~]$ sudo systemctl status docker
Eğer running görüyorsanız docker kurulmuştur ve çalışıyordur.
Minikube (Kubernetes) Kurulumu
kubectl kurulumu
Kubernetes api’si ile etkileşime geçebilmek için öncelikle kubectl’i kurmalıyız [1].
kubectl için repo oluştur.
[train@localhost ~]$ sudo nano /etc/yum.repos.d/kubernetes.repo
Oluşturulan kubernetes.repo dosyasına aşağıdaki bilgileri yapıştırınız.
[kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
Paket yöneticimiz yum ile kubectl’i kuralım.
[train@localhost ~]$ sudo yum install -y kubectl
Minikube kurulum
Son olarak ön gereksinimleri gözden geçirin.
2 CPUs or more
2GB of free memory
20GB of free disk space
Internet connection
Container or virtual machine manager, such as: Docker, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMWare.
Yukarıdakiler tamam ise minikube kurulumuna[2] devam edelim.
Minikube rpm paketini indirelim.
[train@localhost ~]$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm
İndirdiğimiz rpm paketini kuralım.
[train@localhost ~]$ sudo rpm -ivh minikube-latest.x86_64.rpm
Minikube başlasın (biraz zaman alacaktır)
[train@localhost ~]$ minikube start
Durum kontrolü
[train@localhost ~]$ minikube status Çıktı: minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured
Minikube komutu için bu kadar yeter, artık kubectl’e geçebiliriz. Minikube komutları ile cluster başlatır ve kapatırken işimiz olur, genelde kubectl kullanırız. Şimdi kubectl ile node kontrolü yapalım.
[train@localhost ~]$ kubectl get nodes Çıktı: NAME STATUS ROLES AGE VERSION minikube Ready master 15h v1.19.0
Fonksiyon kontrolü. Eğer her şey yolunda gitmişse bize pod listesini aşağıdaki komutla verecektir.
[train@localhost ~]$ kubectl get po -A Çıktı: NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-f9fd979d6-bf8jv 1/1 Running 0 20m kube-system etcd-minikube 1/1 Running 0 20m kube-system kube-apiserver-minikube 1/1 Running 0 20m kube-system kube-controller-manager-minikube 1/1 Running 0 20m kube-system kube-proxy-7r8d6 1/1 Running 0 20m kube-system kube-scheduler-minikube 1/1 Running 0 20m kube-system storage-provisioner 1/1 Running 0 20m
Minikube durdurma
[train@localhost ~]$ minikube pause * Pausing node minikube ... * Paused 18 containers in: kube-system, kubernetes-dashboard, storage-gluster, istio-operator [train@localhost ~]$ minikube stop * Stopping node "minikube" ... * Powering off "minikube" via SSH ... * 1 nodes stopped. [train@localhost ~]$ minikube delete --all * Deleting "minikube" in docker ... * Removing /home/train/.minikube/machines/minikube ... * Removed all traces of the "minikube" cluster. * Successfully deleted all profiles
İşte hepsi bu kadar. Kendinize Docker ve Kubernetes çalışma ortamı kurdunuz. Başka bir yazıda görüşmek dileğiyle, hoşçakalın.
Kaynaklar
- https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux
- https://minikube.sigs.k8s.io/docs/start/