Minikube, yerel makinenizde tek nodelu bir Kubernetes cluster'ı çalıştırmanızı sağlayan bir araçtır. Kubernetes'i öğrenmek, yerel olarak uygulama geliştirmek ve test etmek için ideal bir çözümdür.

Kurulum

Minikube'ü kurmadan önce sisteminizde bir sanallaştırma yazılımı (VirtualBox, VMware, Hyper-V, KVM) veya Docker'ın kurulu olması gerekir.

macOS
brew install minikube
Linux
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
Windows (Chocolatey ile)
choco install minikube

Temel Komutlar

Minikube cluster'ınızı yönetmek için kullanabileceğiniz temel komutlar:

# Cluster'ı başlatma (Docker driver'ı ile)
minikube start --driver=docker

# Cluster durumunu kontrol etme
minikube status

# Kubernetes dashboard'unu tarayıcıda açma
minikube dashboard

# Cluster'ı durdurma
minikube stop

# Cluster'ı ve tüm kaynakları silme
minikube delete

İlk Uygulamanızı Dağıtma

Minikube cluster'ınız çalışır duruma geldikten sonra `kubectl` komut satırı aracıyla ilk uygulamanızı dağıtabilirsiniz.

# Basit bir web sunucusu deployment'ı oluşturma
kubectl create deployment hello-minikube --image=registry.k8s.io/e2e-test-images/agnhost:2.39 -- /agnhost netexec --http-port=8080

# Deployment'ı bir servis olarak dışarıya açma
kubectl expose deployment hello-minikube --type=LoadBalancer --port=8080

# Servisin URL'ini alıp tarayıcıda açma
minikube service hello-minikube

Addon'lar ile Fonksiyonellik Ekleme

Minikube, cluster'ınıza ek özellikler katmanızı sağlayan addon'lar sunar.

# Mevcut addon'ları listeleme
minikube addons list

# Ingress controller addon'unu etkinleştirme
minikube addons enable ingress

# Metrics Server addon'unu etkinleştirme
minikube addons enable metrics-server

# Bir addon'u devre dışı bırakma
minikube addons disable ingress

Yerel Docker İmajlarını Kullanma

Minikube'ün kendi Docker daemon'ını kullanarak yerel olarak oluşturduğunuz imajları cluster içinde çalıştırabilirsiniz. Bu, imajları bir registry'e push etme ihtiyacını ortadan kaldırır.

# Minikube'ün Docker ortam değişkenlerini terminalinize yükleme
eval $(minikube -p minikube docker-env)

# Docker imajınızı oluşturma
docker build -t my-app:v1 .

# Deployment manifest'inizde `imagePullPolicy: Never` olarak ayarlayarak imajı kullanma
# ...
# spec:
#   containers:
#   - name: my-app
#     image: my-app:v1
#     imagePullPolicy: Never
# ...

Minikube Alternatifleri

  • Kind (Kubernetes in Docker): Her node'u bir Docker konteyneri olarak çalıştırır, çoklu node cluster'lar için harikadır.
  • K3d: Rancher'ın hafif Kubernetes dağıtımı olan k3s'i Docker içinde çalıştırır.
  • Docker Desktop Kubernetes: Docker Desktop'ın içine entegre edilmiş tek tıklamayla çalışan bir Kubernetes cluster'ı.
  • MicroK8s: Canonical tarafından geliştirilen, özellikle Ubuntu için optimize edilmiş hafif bir Kubernetes dağıtımı.

Sonuç

Minikube, Kubernetes dünyasına adım atmak ve konteynerize uygulamalarınızı yerel ortamda geliştirmek için güçlü ve esnek bir araçtır. Gerçek bir bulut cluster'ına dağıtım yapmadan önce uygulamalarınızı güvenle test etmenize olanak tanır.