一 Minikube介紹
1.1 概述
Minikube是一種能夠在本地輕鬆運行Kubernetes的工具。Minikube在筆記本電腦的VM中運行單節點Kubernetes集羣,供但願嘗試Kubernetes或平常開發的用戶測試使用。特色是不能啓動生產集羣,沒有高可用性的單節點機器。
使用Minikube CLI管理虛擬機上的Kubernetes環境,好比:啓動,中止,刪除,獲取狀態等。
1.2 Minkube功能
Minikube支持Kubernetes功能,例如:
- DNS
- NodePorts
- ConfigMaps和Secrets
- 儀表板
- Container Runtime:Docker,rkt,CRI-O和containerd
- 啓用CNI(容器網絡接口)
- 入口
1.3 架構示意
Minikube利用本地虛擬機環境部署Kubernetes,其基本架構以下圖所示:
二 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 #測試
提示:可以使用kvm或virtualbox(默認)啓動虛擬節點,在此節點上部署Kubernetes集羣,國內環境沒法正常下載相應驅動,若採用none,即宿主機自身docker環境進行部署,須要提早安裝docker。
3.2 快速構建
1 [root@k8s ~]# minikube start
提示:若是要更改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 #查看部署組件
3.3 確認驗證
1 [root@k8s ~]# minikube ssh #進入集羣虛機
2 $ docker ps #查看所運行的容器
3 [root@k8s ~]# minikube dashboard #打開Kubernetes web界面
四 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的列表
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/