国内使用 Minikube

OS:macOS

GitHub:https://github.com/khs1994-docker/minikube

GitHub: https://github.com/kubernetes/minikube

修订记录

  • 2018-01-15:请在之前看过我文章的务必按照本文重新安装配置 minikube
  • 2018-01-15:由于阿里云的 localkube 出现问题(已反馈给相关人员),暂时只能使用我编译的 localkube。

本人也是初学 minikube,本文基于 minikube 0.24.1 版本。

如果我们直接使用从 https://github.com/kubernetes/minikube 下载的 minikube 你可能会发现根本不能运行成功。

这是因为它要从 gcr.io 拉取镜像,而国内网络问题导致镜像下载不了,当然也就不能启动了。

知道为什么成功不了,那我们就替换源码中的国外镜像为国内镜像源(阿里云)。

具体要变更哪些文件请看 GitHub

我已经把变更过的文件上传到了 GitHub,本文以这个 git 仓库为源码,重新编译 minikube

安装 kubectl

使用 minikube 必须先安装好 k8s 命令行工具 kubectl

macOS

Docker for Mac 17.12+ 启用 k8s 之后会在 /usr/local/bin 放入 kubectl,所以你无需安装。

Docker for Mac 自带的 k8s 会与 minikube 冲突,请以下命令进行切换。

$ kubectl config get-contexts

CURRENT   NAME                 CLUSTER                      AUTHINFO             NAMESPACE
          docker-for-desktop   docker-for-desktop-cluster   docker-for-desktop
*         minikube             minikube                     minikube

# 切换到 docker 自带的 k8s

$ kubectl config use-context docker-for-desktop


# 切换到 minikube

$ kubectl config use-context minikube

如果你没启用 k8s 那么请使用下面的方法。

$ brew install kubectl

curl

或者使用 curl 下载。

注意,由于网络问题,从官网下载极有可能下载失败。你可以使用国内镜像 https://github.com/khs1994-docker/kubectl-cn-mirror

bash

# OS X
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl

# Linux
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

# Windows
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/windows/amd64/kubectl.exe

fish

# OS X
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl

# Linux
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

# Windows
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/windows/amd64/kubectl.exe

重新安装 minikube 国内版

你可以选择 编译安装 或者 下载安装。为了避免混乱,编译安装的方法,放到了文章最后。

直接下载安装

你可以根据你的操作系统,下载对应的二进制文件。你也可以在命令行使用 curl 下载。

https://github.com/khs1994-docker/minikube/releases

bash

$ curl -LO https://github.com/khs1994-docker/minikube/releases/download/v0.24.1/minikube-`uname -s`-`uname -m`

$ chmod +x minikube-`uname -s`-`uname -m`

$ sudo cp minikube-`uname -s`-`uname -m` /usr/local/bin/minikube

fish

$ curl -LO https://github.com/khs1994-docker/minikube/releases/download/v0.24.1/minikube-(uname -s)-(uname -m)

$ chmod +x minikube-(uname -s)-(uname -m)

$ sudo cp minikube-(uname -s)-(uname -m) /usr/local/bin/minikube

虚拟机驱动

https://github.com/kubernetes/minikube/blob/master/docs/drivers.md

macOS 上默认的驱动是 VirtualBox,但是我们这里选择 hyperkit

注意,你可能看到一些旧教程使用了 xhyve,如果你使用这个驱动,启动时 minikube 会提示你该驱动已经废弃。

WARNING: The xhyve driver is now deprecated and support for it will be removed in a future release.
Please consider switching to the hyperkit driver, which is intended to replace the xhyve driver.
$ curl -LO https://github.com/kubernetes/minikube/releases/download/v0.24.1/docker-machine-driver-hyperkit

$ chmod +x docker-machine-driver-hyperkit

$ sudo mv docker-machine-driver-hyperkit /usr/local/bin/

$ sudo chown root:wheel /usr/local/bin/docker-machine-driver-hyperkit

$ sudo chmod u+s /usr/local/bin/docker-machine-driver-hyperkit

这样我们就安装好了驱动。

启动

$ minikube start --vm-driver=hyperkit --alsologtostderr --v 10

选择一种驱动之后,不要再改变,否则可能会启动失败。

错误排查

若启动时出现错误,请执行以下命令删除本地集群,再重新执行启动命令。

$ minikube delete

如果仍然出现错误请删除 ~/.minikube,再重新执行启动命令。

使用方法

打开控制面板

$ minikube dashboard

Opening kubernetes dashboard in default browser...

之后会自动打开浏览器页面。

查看 IP

$ minikube ip

192.168.64.12

查看状态

$ minikube status

minikube: Running
cluster: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.64.12

查看集群

$ kubectl cluster-info

Kubernetes master is running at https://192.168.64.12:8443

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

更多方法请查看后续文章。

关闭

$ minikube stop

附录

编译安装 minikube

注意:编译安装适用于对 Go 有一定了解的人。

安装 Go

$ brew install go

设置 Go 相关环境变量,自行修改为你自己的路径。

GOROOT="/usr/local/opt/go/libexec"
GOPATH="/Users/khs1994/go"

编译安装

$ git clone -b 0.24.1 --depth=1 git@github.com:khs1994-docker/minikube.git $GOPATH/src/k8s.io/minikube

$ cd $GOPATH/src/k8s.io/minikube

$ make

$ sudo cp out/minikube /usr/local/bin

More Information

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Laoqi's Linux运维专列

安装配置kibana+logstash

18120
来自专栏康怀帅的专栏

国内使用 minikube

OS:macOS GitHub:https://github.com/khs1994-docker/minikube GitHub: https://githu...

2.1K50
来自专栏zingpLiu

yum命令速查

CentOS可在yum服务器上下载官方网站给出的rpm给出的表头列表数据,该数据除了记载每个rpm软件的相依性之外,也说明了rpm所放置的容器(reposito...

48330
来自专栏晓晨的专栏

Docker配置加速器

1.1K40
来自专栏编码前线

将FFmpeg编译成一个libffmpeg.so库

Note: 这个脚本不再需要修改Configure的内容(生成的是.a而不是.so,并没有涉及到版本号问题)

1.1K40
来自专栏闵开慧

启动datanode时50010和50020端口被占用

datanode无法启动,在datanode上查看启动日志发现,启动datanode时50010和50020端口被占用,导致datanode无法启动。 1 在d...

71480
来自专栏编程坑太多

跟我一起学docker(14)--docker swarm的使用

29230
来自专栏L宝宝聊IT

KVM存储池和存储卷

KVM的存储选项有多种,包括虚拟磁盘文件、基于文件系统的存储和基于设备的存储。

30160
来自专栏Coding01

一步一步搭建 PHP 服务器环境

这两天翻了翻之前的技术文档,发现有一篇文档值得拿出来和大家分享:如何给一台全新的阿里云服务器,搭建环境 —— 来部署 PHP 项目,Node.js 项目等。

49820
来自专栏小狼的世界

Kubernetes命名空间

Kubernetes中提供了命名空间,但是如果你的团队规模比较小并且集群规模也不大,完全可以不用Namespaces而使用labels来区分不同的资源,随着项目...

19710

扫码关注云+社区

领取腾讯云代金券