这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

通过 minikube 安装 kubenetes

通过 minikube 安装 kubenetes

1 - minikube概述

minikube概述

2 - ubuntu下用minikube安装

ubuntu下用minikube安装kubernetes

参考官方资料:

https://kubernetes.io/docs/tasks/tools/install-minikube/

准备

  1. VT-x 或 AMD-v 虚拟化支持必须在电脑的bios中开启
  2. 安装虚拟机: 对于 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 会发现一直阻塞在 status ContainerCreating

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安装

MacOS下用minikube安装kubernetes

安装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 登录的问题。