通过 minikube 安装 kubenetes
1 - minikube概述
2 - ubuntu下用minikube安装
参考官方资料:
https://kubernetes.io/docs/tasks/tools/install-minikube/
准备
- VT-x 或 AMD-v 虚拟化支持必须在电脑的bios中开启
- 安装虚拟机: 对于 Linux, 可以安装 VirtualBox 或 KVM
安装VirtualBox
具体操作参考这里:
https://skyao.io/learning-linux-mint/daily/system/virtualbox.html
安装kubectl
参考:
https://kubernetes.io/docs/tasks/tools/install-kubectl/
执行命令如下:
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
kubectl version
注意:如果更新了Minikube,务必重新再执行上述步骤以便更新kubectl到最新版本,否则可能出现问题,比如minikube dashboard
打不开浏览器。
如果需要重新安装,需要先执行清理:
rm -rf ~/.kube/
sudo rm -rf /usr/bin/kubectl
安装Minikube
安装命令:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
&& sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube version
如果有版本更新,重新执行上面命令再次安装即可。
通过minikube运行k8s
参考: https://kubernetes.io/docs/getting-started-guides/minikube/
warn::一定要设置代理
切记要设置代理,否则会因为网络被墙导致无法获取镜像,
kubectl get pod
会发现一直阻塞在 statusContainerCreating
.
minikube start --docker-env http_proxy=http://192.168.31.152:8123 --docker-env https_proxy=http://192.168.31.152:8123 --docker-env no_proxy=localhost,127.0.0.1,::1,192.168.31.0/24,192.168.99.0/24
如果有全局翻墙,就可以简单的minikube start
启动。
注意:这里的代理一定要是http代理,因此不能直接输入shadowsocks的地址,要用pilipo提供的http代理,而且要设置pilipo的proxyAddress,不能只监听127.0.0.1.
如果没有正确设置代理就执行了 minikube start
,则只能删除虚拟机然后重新来过,后面再设置代理是没有效果的:
minikube stop
minikube delete
按照上面的文章可以测试minikube是否可以正常工作.如果想查看k8s的控制台,输入下面命令:
minikube dashboard
备忘
用到的一些的命令,备用.
kubectl:
- kubectl get pod
- kubectl get pods –all-namespaces
- kubectl get service
- kubectl describe po hello-minikube-180744149-lj0rd
minikube:
- minikube dashboard
- minikube status
- minikube service hello-minikube –url
- curl $(minikube service hello-minikube –url)
3 - MacOS下用minikube安装
安装VirtualBox
https://www.virtualbox.org/wiki/Downloads
下载安装for mac的版本,如 “ VirtualBox 6.0.4 platform packages” 下 的 OSX hosts,然后安装下载的img文件。
之后在下载 VirtualBox 6.0.4 Oracle VM VirtualBox Extension Pack,双击安装。
安装kubectl
brew install kubernetes-cli
安装minikube
brew cask install minikube
完成后测试一下:
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019-01-13T23:15:13Z", GoVersion:"go1.11.4", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019-01-10T23:28:14Z", GoVersion:"go1.11.4", Compiler:"gc", Platform:"linux/amd64"}
启动minikube
如果是在可以翻墙的环境中,安装最新版本的kubernetes,可以简单执行命令:
minikube start
如果不支持全局翻墙,可以指定镜像地址,也可以指定要安装的kubernetes版本:
minikube start --memory=8192 --cpus=4 --disk-size=20g --registry-mirror=https://docker.mirrors.ustc.edu.cn --kubernetes-version=v1.12.5 --docker-env http_proxy=http://192.168.0.40:8123 --docker-env https_proxy=http://192.168.0.40:8123 --docker-env no_proxy=localhost,127.0.0.1,::1,192.168.0.0/24,192.168.99.0/24
minikube start --memory=8192 --cpus=4 --disk-size=20g --kubernetes-version=v1.12.5
实测下载还是出问题,怀疑是不是要在minikuber start 前面再加 http_proxy=http://192.168.0.40:8123 http_proxys=http://192.168.0.40:8123
稍后验证。
启动dashborad
标准方式,执行命令 minikube dashboard
,然后就会自动打开浏览器访问地址 http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login
备注:之前各个版本都正常,最近用v0.33.1的minikuber安装的kubernetes 1.13.2版本,遇到问题,报错如下:
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019-01-13T23:15:13Z", GoVersion:"go1.11.4", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019-01-10T23:28:14Z", GoVersion:"go1.11.4", Compiler:"gc", Platform:"linux/amd64"}
$ minikube version
minikube version: v0.33.1
$ minikube dashboard
Enabling dashboard ...
Verifying dashboard health ...
Launching proxy ...
Verifying proxy health ...
http://127.0.0.1:51695/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/ is not responding properly: Temporary Error: unexpected response code: 503
Temporary Error: unexpected response code: 503
Temporary Error: unexpected response code: 503
Temporary Error: unexpected response code: 503
导致无法打开dashboard,只好用 kubeproxy 的方式:
$ kubectl proxy
Starting to serve on 127.0.0.1:8001
然后手动打开地址: http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login
参考:https://stackoverflow.com/questions/52916548/minikube-dashboard-returns-503-error-on-macos
然后又是遇到 dashboard 登录的问题。