Minikebehtml
Minikube是一個輕量級Kubernetes實現,它在本地機器上建立一個VM,並部署一個只包含一個節點的簡單集羣。linux
Minikube使用Docker機器來管理Kubernetes VM,所以它得益於Docker機器使用的驅動程序插件架構,該架構提供了一種一致的方式來管理各類VM提供者。Minikube嵌入了VirtualBox和VMware Fusion驅動程序,所以不須要額外的步驟來使用它們。可是,其餘驅動程序須要在主機路徑中提供額外的二進制文件。nginx
先決條件:git
1. 系統支持虛擬化技術github
2. 已安裝配置KVM2或Virtualboxchrome
3. 已安裝Docker(Docher CE 或 Docker EE)docker
--KVM2 Driverapi
KVM2安裝(KVM2須要安裝libvirt 1.3.1或更高版本和qemu-kvm)xcode
sudo apt install libvirt-clients libvirt-daemon-system qemu-kvm
sudo apt install libvirt-bin libvirt-daemon-system qemu-kvm
sudo yum install libvirt-daemon-kvm qemu-kvm
sudo zypper install libvirt qemu-kvm
檢查virsh版本: virsh --versionbash
若版本高於1.3.1則可下載預構造的KVM2 driver
curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 \ && sudo install docker-machine-driver-kvm2 /usr/local/bin/
#查看kvm driver版本 docker-machine-driver-kvm2 version
--安裝Docker
yum install docker -y
--安裝minikube 1.2.0
curl -L minikube https://storage.googleapis.com/minikube/releases/v1.2.0/minikube-linux-amd64 -o /usr/local/bin/minikube
--安裝kubectl 1.15.0
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl
--啓動libvirtd服務
systemctl enable libvirtd.service systemctl start libvirtd.service systemctl status libvirtd.service #將當前用戶加入libvirt組 usermod -a -G libvirt $(whoami) #切換用戶有效組 newgrp libvirt
--啓動minikube
minikube start --vm-driver=kvm2 #可將kvm2設置爲默認driver minikube config set vm-driver kvm2
#個人啓動輸出,爲了出現沒必要要麻煩,我使用root安裝的 [root@oc1657727366 ~]# minikube start --vm-driver=kvm2 😄 minikube v1.2.0 on linux (amd64) ⚠️ Please don't run minikube as root or with 'sudo' privileges. It isn't necessary. 🔥 Creating kvm2 VM (CPUs=2, Memory=2048MB, Disk=20000MB) ... 🐳 Configuring environment for Kubernetes v1.15.0 on Docker 18.09.6 💾 Downloading kubeadm v1.15.0 💾 Downloading kubelet v1.15.0 🚜 Pulling images ... 🚀 Launching Kubernetes ... ⌛ Verifying: apiserver proxy etcd scheduler controller dns 🏄 Done! kubectl is now configured to use "minikube" #查看minikube狀態 [root@oc1657727366 ~]# minikube status host: Running kubelet: Running apiserver: Running kubectl: Correctly Configured: pointing to minikube-vm at 192.168.39.42
--minikube使用
#建立一個名爲my-nginx的deployment [root@oc1657727366 ~]# kubectl create deployment --image=nginx my-nginx deployment.apps/my-nginx created #查看pod列表 [root@oc1657727366 ~]# kubectl get pods NAME READY STATUS RESTARTS AGE my-nginx-f969cff84-kcc49 1/1 Running 0 6m21s #查看已創建的deployment [root@oc1657727366 ~]# kubectl get deployment NAME READY UP-TO-DATE AVAILABLE AGE my-nginx 1/1 1 1 7m19s #擴展nginx pod數量到兩個 [root@oc1657727366 ~]# kubectl scale deployment --replicas 2 my-nginx deployment.extensions/my-nginx scaled #再次查看pod列表 [root@oc1657727366 ~]# kubectl get pods NAME READY STATUS RESTARTS AGE my-nginx-f969cff84-c92vj 1/1 Running 0 9s my-nginx-f969cff84-kcc49 1/1 Running 0 9m28s
#經過minikube打開dashboard [root@oc1657727366 ~]# minikube dashboard 🤔 Verifying dashboard health ... 🚀 Launching proxy ... 🤔 Verifying proxy health ... 🎉 Opening http://127.0.0.1:43575/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/ in your default browser... START /usr/bin/google-chrome-stable "http://127.0.0.1:43575/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/" [18070:18070:0717/193410.832958:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
--其餘
# 查看集羣的全部資源 kubectl get all kubectl get all -o wide # 進入節點服務器 minikube ssh # 執行節點服務器命令,例如查看節點 docker info minikube ssh -- docker info # 刪除集羣 minikube delete # 關閉集羣 minikube stop
#進入節點服務器後能夠查看當前docker服務,開啓容器交互模式終端 [root@oc1657727366 ~]# minikube ssh _ _ _ _ ( ) ( ) ___ ___ (_) ___ (_)| |/') _ _ | |_ __ /' _ ` _ `\| |/' _ `\| || , < ( ) ( )| '_`\ /'__`\ | ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )( ___/ (_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____) $ who am i docker pts/0 Jul 17 12:04 (192.168.39.1) $ ip add|grep 'inet ' inet 127.0.0.1/8 scope host lo inet 192.168.122.246/24 brd 192.168.122.255 scope global dynamic eth0 inet 192.168.39.42/24 brd 192.168.39.255 scope global dynamic eth1 inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 $ uname -r 4.15.0 $ cat /etc/os-release NAME=Buildroot VERSION=2018.05.3 ID=buildroot VERSION_ID=2018.05.3 PRETTY_NAME="Buildroot 2018.05.3" $ docker ps $ docker exec -it e86496c07070 /bin/bash
參考網站:
https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#kvm2-driver
https://github.com/kubernetes/examples/blob/master/staging/simple-nginx.md