通過minikube部署kubernetes
需要本地驗證部署一下knative,需要一個叢集,是以先部署一個minikube。記錄如下:
0.環境準備
安裝一個VM VirtualBox 6.0.4版本。
1.安裝Docker
自己的機器安裝的是Linux Mint 18.3(ubuntu1604)。直接檢查一下Docker等的安裝情況。
$ docker --version
Docker version 18.09.4, build d14af54
如果沒裝,可以安裝:sudo apt-get install docker.io
在修改一下倉庫位址,避免到國外去下載下傳,現在國内的鏡像倉庫也很多了。
# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
重新開機生效
sudo /etc/init.d/docker restart
2.安裝kubectl
直接下一個編譯好的包(https://github.com/kubernetes/kubernetes/releases)解壓放入/usr/local/bin目錄。
$ ll /usr/local/bin/kubectl
-rwxr-xr-x 1 root root 43103040 Mar 28 17:54 /usr/local/bin/kubectl*
3.安裝minikube
發現阿裡的minikube版本,應該是直接指向國内的庫了,是以避免了網絡牆的問題,直接去https://github.com/AliyunContainerService/minikube下載下傳,并放入/usr/local/bin目錄。
$ ll /usr/local/bin/minikube
-rwxr-xr-x 1 root root 40095660 Mar 28 17:53 /usr/local/bin/minikube*
啟動、啟動dashboard、停止等,虛拟機的資料等都存儲在~/.minikube目錄下。
minikube start --registry-mirror=https://registry.docker-cn.com
minikube dashboard
minikube stop
啟動的時候提示如下:
$ minikube start --registry-mirror=https://registry.docker-cn.com
There is a newer version of minikube available (v1.0.0). Download it here:
https://github.com/kubernetes/minikube/releases/tag/v1.0.0
To disable this notification, run the following:
minikube config set WantUpdateNotification false
o minikube v0.35.0 on linux (amd64)
i Tip: Use 'minikube start -p <name>' to create a new cluster, or 'minikube delete' to delete this one.
: Restarting existing virtualbox VM for "minikube" ...
: Waiting for SSH access ...
- "minikube" IP address is 192.168.99.103
- Configuring Docker as the container runtime ...
- Preparing Kubernetes environment ...
- Pulling images required by Kubernetes v1.13.4 ...
: Relaunching Kubernetes v1.13.4 using kubeadm ...
: Waiting for pods: apiserver proxy etcd scheduler controller addon-manager dns
: Updating kube-proxy configuration ...
- Verifying component health ......
+ kubectl is now configured to use "minikube"
= Done! Thank you for using minikube!
啟動後就可以使用kubectl來操作叢集了。
$ kubectl get all
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 12d
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready master 12d v1.13.4