0.预先说明
Minikube可以利用虚拟机快速部署一个kubernetes集群,帮助快速学习和入门。
参考文档:https://kubernetes.io/docs/tutorials/hello-minikube/#objectives
Minikube的实际上的部署方式有两种,1.调用虚拟机部署集群,这时需要首先安装虚拟机,如virtualbox;2.通过容器部署,需要Linux环境,安装docker.
容器反正是要装的;根据本人多次尝试,安装minikube过程中需要去不存在的网站下载资源,利用virtualbox(即方法1)部署时,设置好http_proxy环境变量就能下载到ios镜像资源。用容器方法(方法2)时只做http代理就不行了,需要在路由器上做梯子,转发所有流量方可。
方法1实现比较简单,但如果操作系统本身是运行在虚拟机里的,再装minikube就不行了,因为minikube要再启动虚拟机,虚拟机嵌套会出问题(至少已经尝试过virtualbox嵌套virtualbox是不行的,据说Vmware嵌套virtualbox可以)。
方法2中minikube不调用虚拟机建集群,直接用容器,这样就无所谓操作系统是不是在虚拟机里了。采用方法1还是方法2,差别在于minikube start使用时的参数--vm-driver ,后文会再次提到。
1.安装kubectl
Kubectl是kubernetes的命令行操作界面,官方说法是“调用kubernetes实现集群管理的工具”,kubectl本身与minikube无关,它是用来管理minikube所建立的集群的。
sudo snap install kubectl –classic
安装完成后检查版本信息:
kubectl version
能显示版本信息就说明安装成功了。
参考文档:https://kubernetes.io/docs/tasks/tools/install-kubectl/
2.安装Minikube
网络畅通的情况下可以一键安装:
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.30.0/minikube-linux-amd64 && chmod +x minikube && sudo cp minikube /usr/local/bin/ && rm minikube
但是在天朝不能连接到这个网址,可以从 https://github.com/kubernetes/minikube/releases 下载【minikube-linux-amd64 40.3 MB】,改名为minikube,手动拷贝到/usr/local/bin/,然后赋予可执行权限:chmod +x minikube .
3. 启动 Minikube cluster
参考文档:https://kubernetes.io/docs/tutorials/hello-minikube/#create-a-minikube-cluster
在minikube启动的过程中,需要从网络上下载镜像资源,
由于特殊国情,需要: 0.拥有一个shadowsock用户,1.运行sslocal服务建立sock5通道,2. 用privoxy建立http代理服务器,修改listen-address和forward address。第1步和第2步详见 https://blog.csdn.net/cuipengchong/article/details/64472789, https://my.oschina.net/icebergxty/blog/1860519 然后在shell终端中设置http_proxy的环境变量:export http_proxy=’http://localhost:8118’
minikube start 后面加 --vm-driver=xxx 参数选择使用的虚拟化方式,virtualbox表示使用虚拟机部署集群(前面说到的方法1);none表示使用容器作为虚拟化(前面提到的方法2)
(原始文档说明:If you want to change the VM driver add the appropriate --vm-driver=xxx flag to minikube start. Minikube also supports a --vm-driver=none option that runs the Kubernetes components on the host and not in a VM. Using this driver requires Docker, but not a hypervisor.)
启动minikube:minikube start
参数 --vm-driver 指定虚拟化方法,--vm-driver=none 表示用容器,--vm-driver=virtualbox 表示用虚拟机;--docker-env http_proxy 传递代理地址。若使用容器部署minikube,示例如下,
sudo minikube start --vm-driver=none --docker-env http_proxy=http://$host_IP:8118 --docker-env https_proxy=https:// $host_IP:8118
其中$host_IP指的是host的IP,可以通过ifconfig查看,比如在我这台机器是10.0.2.15,用virtualbox部署,则用下列命令启动minikube
sudo minikube start --vm-driver=none --docker-env http_proxy=http://10.0.2.15:8118 --docker-env https_proxy=https://10.0.2.15:8118
如果一切顺利,运行
kubectl cluster-info
可以看到集群的地址,如下图,这就说明minikube集群成功运行起来了。
若返回不是上面这样的,而是下图,那么就是没有安装成功。
这时你有三个选择:
- 设置好网络,从头再试一遍;
- 早点放弃,不要浪费时间了;
- 尝试kubernetes的在线教程,那里已经帮你搭好集群了。
4.进一步查看集群的信息
如果用minikube正确安装了集群,可以用
kubectl get node
查看集群中的节点信息,或者
minikube dashboard --url
查看图形化的仪表盘。