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

  1. https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux
  2. https://minikube.sigs.k8s.io/docs/start/

Yazar Hakkında
Toplam 177 yazı
Erkan ŞİRİN
Erkan ŞİRİN
10 yılı aşkın süredir yurtiçi ve yurtdışında sektörde büyük veri mühendisliği, platform yönetimi ve makine öğrenmesi ile ilgili çalışmalar yürütmekte ve aynı zamanda birçok kurum ve şirkete danışmanlık ve eğitimler vermektedir. Çalışma alanları: Data ve MLOps platformları, gerçek zamanlı veri işleme, değişen veriyi yakalama (CDC) ve Lakehouse.
Yorumlar (Yorum yapılmamış)

Bir yanıt yazın

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

×

Bir Şeyler Ara