为了方便大家本地开发和体验Kubernetes,社区提供了可以在本机部署的Minikube, 此外, Docker社区版也已经提供了对Kubernetes的支持。

<>

这里将使用Minikube进行本地部署。由于网络问题,这里具体用阿里修改的版本(Minikube v0.31.0), 从阿里云的镜像地址来获取所需Docker镜像和配置。

如需更新minikube,需要更新 minikube 安装包

  • minikube delete删除现有虚机,删除~/.minikube` 目录缓存的文件
  • 重新创建 minikube 环境

1、安装

Mac OSX

1
  curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v0.31.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

Linux

1
  curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v0.31.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

2、启动

缺省Minikube使用VirtualBox驱动来创建Kubernetes本地环境

1
$ minikube start --registry-mirror=https://registry.docker-cn.com

缺省启动时,虚拟机默认使用2核2048M内存, 可以在启动时指定参数,来修改默认行为

1
2
# 虚拟机使用4096M内存, 3核CPU
$ minikube start --registry-mirror=https://registry.docker-cn.com --memory=4096 --cpus=3

启动过程容易出错,方便定位问题,可以通过–alsologtostderr指定启动过程中,在标准输出中也输出日志信息

1
2
3
4
5
6
7
8
$ minikube start --registry-mirror=https://registry.docker-cn.com --memory=4096 --cpus=3 --alsologtostderr
W0102 15:18:57.642061   25984 root.go:146] Error reading config file at /root/.minikube/config/config.json: open /root/.minikube/config/config.json: no such file or directory
I0102 15:18:57.646767   25984 notify.go:121] Checking for updates...
Starting local Kubernetes v1.10.0 cluster...
Starting VM...
I0102 15:18:57.877452   25984 cluster.go:69] Machine does not exist... provisioning new machine
I0102 15:18:57.877480   25984 cluster.go:70] Provisioning machine with config: {MinikubeISO:https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v0.31.0.iso Memory:4096 CPUs:3 DiskSize:20000 VMDriver:virtualbox ContainerRuntime: HyperkitVpnKitSock: HyperkitVSockPorts:[] XhyveDiskDriver:ahci-hd DockerEnv:[] InsecureRegistry:[] RegistryMirror:[https://registry.docker-cn.com] HostOnlyCIDR:192.168.99.1/24 HypervVirtualSwitch: KvmNetwork:default Downloader:{} DockerOpt:[] DisableDriverMounts:false NFSShare:[] NFSSharesRoot:/nfsshares UUID: GPU:false}
Downloading Minikube ISO

打开Kubernetes控制台

1
$ minikube dashboard

此时,通过在在本机查看到Kubernetes dashboard

但只能在本机浏览访问,如果需要在局域网中的其他机器上访问dashboard,可以:

1
$ kubectl proxy --address='0.0.0.0' --disable-filter=true &

将Kubernetes API代理到本地,默认端口是8001(–proxy参数可以自定义),访问地址指定为“0.0.0.0”。假定本机IP为:192.168.1.2, 那么dashboard访问地址:http://192.168.1.2:8001/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/

3、参考