2 Şubat 2022 Çarşamba

minikube - Yerel Kubernetes Cluster

Giriş
Açıklaması şöyle. Windows ve Linux'ta çalışabilir.
minikube is a local Kubernetes cluster packaged as a virtual machine. It’s great if you’re on Windows, Linux, and Mac as it takes five minutes to create a cluster.
Not : minikube kurmak istemiyorsak Docker Desktop kullanılabilir. 
Settings menüsünde Kubernetes sekmesinde "Enable Kubernetes" seçeneği var

VM Tipleri
Minikube farklı VM'ler ile çalıştırabilir. Bunlar şöyle. Yardım sayfasında "Defaults to autodetect" deniyor
$ minikube config defaults driver
* virtualbox - Windows/Linux İçin
* vmwarefusion - Mac İçin
* kvm2 - Linux İçin
* vmware
* none
* docker
* podman
* ssh
none için açıklama şöyle
Minikube also supports a --driver=none option that runs the Kubernetes components on the host and not in a VM. Using this driver requires Docker and a Linux environment but not a hypervisor.
WSL2 ile şöyle gösteriyor yani docker kullanıyor. Minisihft ise örneğin vmware kullanıyor
~$ minikube start
😄  minikube v1.25.2 on Ubuntu 20.04
✨  Automatically selected the docker driver
Container Tipleri
Açıklaması şöyle
Minikube supports multiple container runtimes (CRI-O, containerd, docker)
Kubernetes Sürümleri
Minikube farklı Kubernetes sürümlerini çalıştırabilir. Açıklaması şöyle
Minikube works on every platform and lets you configure lots of options. If you’re running Linux then you can turn off the VM so it runs natively.

The other cool thing is that it supports every Kubernetes version so you can exactly match the versions you’re running on your laptop to the version you’re running on your servers.
Add-on Tipleri
Şu özellikleri destekler
Minikube supports multiple features such as LoadBalancer, filesystem mounts, and FeatureGates.
Liste şöyle
addon-manager, coredns, dashboard, default-storageclass, efk, freshpod, heapster, ingress, kube-dns, metrics-server, nvidia-driver-installer, nvidia-gpu-device-plugin, registry, registry-creds, storage-provisioner
Node Sayısı
Normalde tek node'lu cluster çalıştırır. Açıklaması şöyle
Minikube runs a single-node Kubernetes cluster and lets you interact with the cluster by writing kubectl commands.
Diğer Alternatifler
Minikube yerine k3d ve kind kullanılabilir. Minishift ise OpenShift alternatifi olabilir.

Linux Kurulum
Şöyle yaparız. Burada cp ve chmod ile kuruluyor.
# Install minikube binary
$ wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
$ sudo cp minikube-linux-amd64 /usr/local/bin/minikube
$ sudo chmod +x /usr/local/bin/minikube

# Install kubectl binary
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
$ sudo chmod +x kubectl
$ sudo mv kubectl /usr/local/bin/
Örnek
Şöyle yaparız. Burada install ile kuruluyor.
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-PLATFORM-amd64
$ sudo install minikube-PLATFORM-amd64 /usr/local/bin/minikube
Başlatmak
Örnek
$ minikube start --driver=docker
Her şey kube-system isim alanı (namespace) altında çalışır. Görmek için şöyle yaparız
$ kubectl top pod --all-namespaces
NAMESPACE     NAME                          CPU(cores) MEMORY(bytes)
default       hello-node-55b49fb9f8-fzb5q      0m           10Mi
kube-system   coredns-5c98db65d4-jjz8s         4m           11Mi
kube-system   coredns-5c98db65d4-txdpc         4m           13Mi
kube-system   etcd-minikube                    29m          43Mi
kube-system   heapster-b6n49                   0m           16Mi
kube-system   influxdb-grafana-sq7nb           1m           37Mi
kube-system   kube-addon-manager-minikube      8m           5Mi
kube-system   kube-apiserver-minikube          47m          254Mi
kube-system   kube-controller-manager-minikube 20m          35Mi
kube-system   kube-proxy-cvcdj                 2m           9Mi
kube-system   kube-scheduler-minikube          2m           10Mi
kube-system   kubernetes-dashboard-7b8ddcb5m   0m           14Mi
kube-system   metrics-server-84bb785897-nt4xs  0m           8Mi
kube-system   storage-provisioner              0m           27Mi
Kullanım
Adımlar burada
1. "minikube start" seçeneğiyle bir cluster başlat. Başladıktan sonra "minikube status" seçeneğiyle kontrol et
2. "kubectl create deployment ..." ile deployment yap
3. bir service yap
4. İşin bitince sırasıyla service'i ve deployment' ı sil
5. "minikube stop" ile cluster'ı durdur
6. "minikube delete" ile cluster'ı sil

addons seçeneği
Listelemek için şöyle yaparız
$ minikube addons list
- addon-manager: enabled
- dashboard: enabled
- default-storageclass: enabled
- efk: disabled
- freshpod: disabled
- gvisor: disabled
- heapster: enabled
- ingress: disabled
- logviewer: disabled
- metrics-server: disabled
- nvidia-driver-installer: disabled
- nvidia-gpu-device-plugin: disabled
- registry: disabled
- registry-creds: disabled
- storage-provisioner: enabled
- storage-provisioner-gluster: disabled
Örnek
Şöyle yaparız
minikube addons enable ingress
config seçeneği
Config dosyasındaki ayarları gösterir veya değiştirir.
Örnek
Şöyle yaparız
minikube config set cpus 8
minikube config set memory 24000
minikube config set driver hyperkit
Ayarları görmek için şöyle yaparız
$ minikube config view
- cpus: 8
- driver: hyperkit
- memory: 24000
dashboard seçeneği
Açıklaması şöyle
You can also monitor your Kubernetes cluster via the browser and visually interpret the cluster state by accessing the Kubernetes dashboard from Minikube.
Şöyle yaparız
minikube dashboard
delete seçeneği
Şöyle yaparız
minikube delete
docker-env seçeneği
docker-env seçeneği yazısına taşıdım

image load seçeneği
image load seçeneği yazısına taşıdım

service seçeneği
service seçeneği yazısına taşıdım

start seçeneği
Açıklaması şöyle. Kubernetes'i Docker içinde çalıştırır. Tek düğümlü bir cluster başlatılır
By default, minikube will run the latest Kubernetes in the docker container if you are not specifying VM-DRIVER. ... 
Once you run minikube start, you will have a single node cluster running in docker.
Örnek
Şöyle yaparız
$ minikube start
 minikube v1.14.0 on Darwin 10.15.7
 ...
 Preparing Kubernetes v1.19.2 on Docker 19.03.12 ...
 Verifying Kubernetes components...
 Enabled addons: storage-provisioner, default-storageclass
 Done! kubectl is now configured to use "minikube" by default
-n ile node
Örnek
Açıklaması şöyle
running four-node cluster with calico as CNI and using containerd runtime.
Şöyle yaparız
$ minikube start -n=4 --cni='calico' --container-runtime='containerd' 
 ...
 Preparing Kubernetes v1.21.2 on containerd 1.4.6 ...
Örnek
Minukube'ü bir VM içinde çalıştırmak için şöyle yaparız. Burada kvm2 Linux VM'i içinde çalışıyor
minikube start -n=3 --cni='calico' --container-runtime='containerd' --vm-driver kvm2 
--cpus ile işlemci
Örnek
Şöyle yaparız
minikube start -—cpus=4 -—memory=5000
--memory ile bellek
Örnek
8 GB bellek kullanan bir cluster için şöyle yaparız
minikube start \
  --memory 8096 \
  --extra-config=controller-manager.horizontal-pod-autoscaler-upscale-delay=1m \
  --extra-config=controller-manager.horizontal-pod-autoscaler-downscale-delay=2m \
  --extra-config=controller-manager.horizontal-pod-autoscaler-sync-period=10s
ssh seçeneği
minikube ssh seçeneği yazısına taşıdım

status seçeneği
Ayarları görmek için şöyle yaparız
$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
stop seçeneği
Şöyle yaparız
minikube stop
version seçeneği
Kurulu minikube sürümünü gösterir.

Hiç yorum yok:

Yorum Gönder

Cluster Propotional Autoscaler - ReplicaSet Ekler/Siler

Giriş Açıklaması şöyle CPA aims to horizontally scale the number of Pod replicas based on the cluster’s scale. A common example is DNS ser...