#### **Install Minikube**(centos7)
1. 安裝前要求
1. 機器開啟虛拟化VT-x or AMD-v。
- linux系統檢查是否開啟虛拟機化功能
```
egrep "(vmx|svm)" /proc/cpuinfo
2. 安裝docker (參考前面blog)
```
systemctl status docker
# 如果安裝docker啟動遇到問題,請注意docker-ce版本
# yum install docker-ce-17.06.1.ce
3. 關閉虛拟記憶體
swapoff -a
# 或者登出/etc/fstab 相關行
2. 安裝 虛拟機管理器Hypervisor (虛拟機形式運作) : virtbox
1. 下載下傳安裝VirtualBox
wget https://download.virtualbox.org/virtualbox/5.2.22/VirtualBox-5.2-5.2.22_126460_el7-1.x86_64.rpm
rpm -i VirtualBox-5.2-5.2.22_126460_el7-1.x86_64.rpm
# 提示缺少lib插件libSDL-1.2.so.0()(64bit)
# yum install SDL
2. 下載下傳安裝VirtualBox證書
wget https://www.virtualbox.org/download/oracle_vbox.asc
rpm --import oracle_vbox.as
3. 安裝kubectl
```
curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.11.3/bin/linux/amd64/kubectl && chmod +x ./kubectl
&& mv ./kubectl /usr/local/bin/kubectl
4. 安裝minikube
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.31.0/minikube-linux-amd64 && chmod +x minikube && sudo cp minikube /usr/local/bin/ && rm minikube
5. 啟動minikube前準備
1. 下載下傳相關鏡像( 關鍵點 ,這些鏡像都是需要下載下傳到minikube虛拟機中,不是在實體機中,是以很多人還是選擇了代理方式安裝,或者是阿裡雲鏡像,[Minikube - Kubernetes本地實驗環境 ](https://yq.aliyun.com/articles/221687)).
其中,據我分析日志發現,下面是明确需要的鏡像:
k8s.gcr.io/kube-apiserver-amd64:v1.11.3
k8s.gcr.io/kube-controller-manager-amd64:v1.11.3
k8s.gcr.io/kube-scheduler-amd64:v1.11.3
k8s.gcr.io/kube-proxy-amd64:v1.11.3
k8s.gcr.io/pause:3.1 etcd-amd64:3.2.18
k8s.gcr.io/coredns:1.1.3 kube-addon-manager:v8.6
k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.0
gcr.io/k8s-minikube/storage-provisioner:v1.8.1
以下的是我參考别人文章自行添加的,以備不時之需:
k8s.gcr.io/k8s-dns-sidecar-amd64:1.14.8
k8s.gcr.io/8s-dns-dnsmasq-nanny-amd64:1.14.8
k8s.gcr.io/k8s-dns-kube-dns-amd64:1.14.8
quay.io/coreos/flannel:v0.9.1-amd64
我寫成了自動安裝docker pull images的代碼,很抱歉沒有寫成一個完整的代碼。
vim imagespull.sh
#!/bin/bash
apilist="kube-apiserver-amd64:v1.11.3 kube-controller-manager-amd64:v1.11.3 kube-scheduler-amd64:v1.11.3 kube-proxy-amd64:v1.11.3 pause:3.1 etcd-amd64:3.2.18 coredns:1.1.3 kube-addon-manager:v8.6 kubernetes-dashboard-amd64:v1.10.0 k8s-dns-sidecar-amd64:1.14.8 k8s-dns-dnsmasq-nanny-amd64:1.14.8 k8s-dns-kube-dns-amd64:1.14.8"
mirror=k8s.gcr.io/
newmirror=anjia0532/google-containers.
for i in $apilist
do
docker pull $newmirror$i
docker tag $newmirror$i $mirror$i
done
chmod +x imagespull.sh
./imagespull.sh
docker pull anjia0532/k8s-minikube.storage-provisioner:v1.8.1
docker tag anjia0532/k8s-minikube.storage-provisioner:v1.8.1 gcr.io/k8s-minikube/storage-provisioner:v1.8.1
docker pull quay.io/coreos/flannel:v0.9.1-amd64
6. ##### 啟動minikube,很關鍵一個地方。這個時候需要同時打開兩個終端,使用另一個終端進行minikube ssh 操作,如果能連接配接進minikube虛拟機,切換到第一個終端進行Crtl +Z操作(如果稍晚暫停的話,大機率可能部署失敗),然後在minikube虛拟機中(minikube ssh),執行我寫的下載下傳鏡像的指令,鏡像下載下傳完畢之後。切換到第一個終端,執行fg,直至完成。
minikube start --kubernetes-version v1.11.3
7. 下面是一個報錯截圖日志截圖。顯示了缺少gcr鏡像檔案。可以通過minikube logs檢視。
E1214 10:47:28.634110 8089 start.go:342] Error starting cluster: kubeadm init error
sudo /usr/bin/kubeadm init --config /var/lib/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests --ignore-preflight-errors=DirAvailable--data-minikube --ignore-preflight-errors=Port-10250 --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-etcd.yaml --ignore-preflight-errors=Swap --ignore-preflight-errors=CRI
running command: : running command:
, output: [init] using Kubernetes version: v1.11.3
[preflight] running pre-flight checks
[WARNING Swap]: running with swap on is not supported. Please disable swap
I1214 02:45:48.560337 2760 kernel_validator.go:81] Validating kernel version
I1214 02:45:48.560481 2760 kernel_validator.go:96] Validating kernel config
[WARNING SystemVerification]: docker version is greater than the most recently validated version. Docker version: 18.06.1-ce. Max validated version: 17.03
[preflight/images] Pulling images required for setting up a Kubernetes cluster
[preflight/images] This might take a minute or two, depending on the speed of your internet connection
[preflight/images] You can also perform this action in beforehand using 'kubeadm config images pull'
[preflight] Some fatal errors occurred:
[ERROR ImagePull]: failed to pull image [k8s.gcr.io/kube-apiserver-amd64:v1.11.3]: exit status 1
[ERROR ImagePull]: failed to pull image [k8s.gcr.io/kube-controller-manager-amd64:v1.11.3]: exit status 1
[ERROR ImagePull]: failed to pull image [k8s.gcr.io/kube-scheduler-amd64:v1.11.3]: exit status 1
[ERROR ImagePull]: failed to pull image [k8s.gcr.io/kube-proxy-amd64:v1.11.3]: exit status 1
[ERROR ImagePull]: failed to pull image [k8s.gcr.io/pause:3.1]: exit status 1
[ERROR ImagePull]: failed to pull image [k8s.gcr.io/etcd-amd64:3.2.18]: exit status 1
[ERROR ImagePull]: failed to pull image [k8s.gcr.io/coredns:1.1.3]: exit status 1
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
: Process exited with status 2
================================================================================
An error has occurred. Would you like to opt in to sending anonymized crash
information to minikube to help prevent future errors?
To opt out of these messages, run the command:
minikube config set WantReportErrorPrompt false
8. 有一些常用指令的指令:
檢視kubernetes 相應版本所需鏡像
kubeadm --kubernetes-version=1.11.0 config images list
下載下傳kubernetes 響應版本的鏡像(當然需要×××)
kubeadm config images pull
删除minikube,重新安裝
minikube delete
rm -rf ~/.minikube
minikube start
執行執行minikube ISO (可以在minikube start --help 中的--iso-url 中檢視,自己下載下傳到本地)
minikube start --iso-url xx
本來是想把家裡面的破電腦利用起來做rook實驗,原以為三兩下安裝一個minikube沒問題,誰曾想安裝過程這麼坑爹。花了很長時間,但是沒關系至少有所收獲,對你們也有一定的參考作用。 廢話不多說了,繼續加油吧。
文章是我使用typora編寫的,誰知道直接粘貼到51blog格式出現問題,隻能再重新粘貼一份,也可以去我的私人部落格上去檢視www.vavikast.com
參考連結:
[Minikube - Kubernetes本地實驗環境 ](https://yq.aliyun.com/articles/221687)
[kubernets/minikube](https://github.com/kubernetes/minikube)
[Running Kubernetes Locally via Minikube](https://kubernetes.io/docs/setup/minikube/)
[Minikube releases](https://github.com/kubernetes/minikube/releases)