附002.Minikube介紹及使用

木二發表於2019-06-18

一 Minikube介紹

1.1 概述

Minikube是一種可以在本地輕鬆執行Kubernetes的工具。Minikube在膝上型電腦的VM中執行單節點Kubernetes叢集,供希望嘗試Kubernetes或日常開發的使用者測試使用。特點是不能啟動生產叢集,沒有高可用性的單節點機器。
使用Minikube CLI管理虛擬機器上的Kubernetes環境,比如:啟動,停止,刪除,獲取狀態等。

1.2 Minkube功能

Minikube支援Kubernetes功能,例如:
  • DNS
  • NodePorts
  • ConfigMaps和Secrets
  • 儀表板
  • Container Runtime:Docker,rktCRI-Ocontainerd
  • 啟用CNI(容器網路介面)
  • 入口

1.3 架構示意

Minikube利用本地虛擬機器環境部署Kubernetes,其基本架構如下圖所示:
001

二 Minikube安裝

2.1 前置條件

必須在計算機的BIOS中啟用VT-x或AMD-v虛擬化。
安裝kubetcl工具,參考《附001.kubectl介紹及使用》。

2.2 正式安裝

  1 [root@k8s ~]# curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
  2   && sudo install minikube-linux-amd64 /usr/local/bin/minikube
 
提示:Minkube相關源位於國外,也可採用國內阿里修改的Minkube,操作如下:
  1 [root@k8s ~]# curl -Lo \
  2 minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v0.25.2/minikube-linux-amd64 && \
  3 chmod +x minikube && sudo mv minikube /usr/local/bin/
 

三 使用Minkube啟動Kubernetes

3.1 前期準備

安裝virtualbox:
  1 [root@k8s ~]# yum -y update
  2 [root@k8s ~]# yum -y install kernel-devel
  3 [root@k8s ~]# vi /etc/yum.repos.d/virtualbox.repo
  4 [virtualbox]
  5 name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - VirtualBox
  6 baseurl=http://download.virtualbox.org/virtualbox/rpm/el/7/$basearch
  7 enabled=1
  8 gpgcheck=1
  9 repo_gpgcheck=1
 10 gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc
 11 [root@k8s ~]# yum -y install VirtualBox-5.2
 12 [root@k8s ~]# sudo /sbin/vboxconfig		#測試
 

002

提示:可使用kvm或virtualbox(預設)啟動虛擬節點,在此節點上部署Kubernetes叢集,國內環境無法正常下載相應驅動,若採用none,即宿主機自身docker環境進行部署,需要提前安裝docker。

3.2 快速構建

  1 [root@k8s ~]# minikube start
003
提示:如果要更改VM驅動程式,請新增相應的--vm-driver=xxx標誌minikube start,如minikube start --vm-driver hyperv,如下為使用kvm2驅動部署示例:
  1 root@k8s01:~# sudo apt -y install libvirt-clients libvirt-daemon-system qemu-kvm
  2 #安裝KVM2前置元件
  3 root@k8s01:~# curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 && sudo install docker-machine-driver-kvm2 /usr/local/bin/
  4 #安裝KVM2
  5 root@k8s01:~# minikube start --vm-driver kvm2		#本實驗使用kvm驅動
 
提示:更多驅動安裝文件參考:https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperkit-driver
  1 [root@k8s ~]# kubectl cluster-info			#檢視叢集Master資訊
  2 [root@k8s ~]# kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080
  3 [root@k8s ~]# kubectl expose deployment hello-minikube --type=NodePort
  4 [root@k8s ~]# kubectl get pod				#檢視pod節點
  5 [root@k8s ~]# kubectl get all --namespace=kube-system	#檢視部署元件
 
004

3.3 確認驗證

  1 [root@k8s ~]# minikube ssh			#進入叢集虛機
  2 $ docker ps					#檢視所執行的容器
  3 [root@k8s ~]# minikube dashboard		#開啟Kubernetes web介面
 
005

四 Minkube常見操作

4.1 常見操作

  1 [root@k8s ~]# minikube version		#檢視安裝Minkube版本
  2 [root@k8s ~]# minikube status		#檢視狀態
  3 [root@k8s ~]# minikube start		#啟動一個Kubernetes
 
提示:minikube start可用於啟動/建立叢集,並配置執行單節點Kubernetes叢集的虛擬機器,同時會將kubectl安裝配置為與此群集通訊。
  1 [root@k8s ~]# minikube start --kubernetes-version v1.7.3
  2 #指定特定版本啟動Kubernetes。
  3 root@k8s01:~# minikube stop		#停止一個Kubernetes
 
提示:minikube stop將關閉minikube虛擬機器,但會保留所有群集狀態和資料。再次啟動群集會將其恢復到之前的狀態。
  1 [root@k8s ~]# minikube ip		#檢視內部虛擬機器啟動的IP
  2 [root@k8s ~]# minikube ssh		#進入虛機所構建的叢集內部
  3 [root@k8s ~]# minikube logs		#檢視執行log
  4 [root@k8s ~]# minikube addons list	#檢視addons的列表
 
006
  1 root@k8s01:~# minikube start --kubernetes-version v1.7.3    #啟動指定版本的Kubernetes
  2 root@k8s01:~# minikube delete                               #關閉叢集並刪除minikube虛擬機器,不保留任何虛機資料或狀態,但~/.minikube目錄會存在快取檔案。
  3 root@k8s01:~# minikube dashboard	                        #啟動Kubernetes儀表盤
 

4.2 部分優化

為了能夠在宿主機上使用內部docker相關命令,可進行以下操作::
  1 [root@k8s ~]# eval $(minikube docker-env)
  2 [root@k8s ~]# docker ps
 
 
參考文件:https://yq.aliyun.com/articles/221687
https://github.com/kubernetes/minikube/blob/v0.30.0/README.md
https://kubernetes.io/docs/setup/minikube/

相關文章