minikube

Kubernetes 集群的搭建是有一定难度的,尤其是对于初学者来说,好多概念和原理不懂,即使有现成的教程也会出现很多不可预知的问题,很容易打击学习的积极性,就此弃坑。好在 Kubernetes 社区提供了可以在本地开发和体验的极简集群安装 MiniKube,对于入门学习来说很方便。

MiniKube 官方安装介绍已经非常详细了,可以参考 installation。但是在国内由于网络访问原因(懂的),即使有梯子也很折腾,所以记录一下阿里修改后的 MiniKube 安装。使用阿里修改后的 MiniKube 就可以从阿里云的镜像地址来获取所需 Docker 镜像和配置,其它的并没有差异,下文着重介绍。

一、kubectl 安装

MiniKube 的安装需要先安装 kubectl 及相关驱动,这没什么好说的,参考官方介绍

另 kubectl 也可通过源代码编译安装,编译源码需要有 Git、Golang 环境的支撑。

➜ git clone https://github.com/kubernetes/kubernetes.git
➜ cd kubernetes
➜ make
➜ sudo cp _output/bin/kubectl /usr/local/bin/
➜ sudo chmod +x /usr/local/bin/kubectl

二、MiniKube 安装

MiniKube 是使用 Go 语言开发的,所以安装其实很方便,一是通过下载基于不同平台早已编译好的二级制文件安装,二是可以编译源文件安装。

2.1 二级制文件安装

  • Mac OSX 平台
➜ curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v0.24.1/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
  • Linux 平台
➜ curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v0.24.1/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
  • Windows 平台

下载 minikube-windows-amd64.exe 文件,并重命名为 minikube.exe,然后加入到环境变量路径下即可。

2.2 源码编译安装

编译源码需要有 Git、Golang 环境的支撑。

➜ git clone https://github.com/AliyunContainerService/minikube
➜ cd minikube
➜ git checkout aliyun-v0.24.1
➜ make
➜ sudo cp out/minikube /usr/local/bin/
➜ sudo chmod +x /usr/local/bin/minikube
示例版本是 v0.24.1,可更改为其它版本

三、简单使用

3.1 启动

默认启动使用的是 VirtualBox 驱动,使用 --vm-driver 参数可以指定其它驱动。

# 设置 docker 加速镜像
➜ minikube start --registry-mirror=https://registry.docker-cn.com
Starting local Kubernetes v1.8.0 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
Kubectl is now configured to use the cluster.
Loading cached images from config file.

3.2 检测状态

➜ minikube status
minikube: Running
cluster: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100

3.3 启动 kubernetes dashboard

➜ minikube dashboard
Opening kubernetes dashboard in default browser...

输入以上命令,浏览器中应该就会显示以下界面:

minikube-dashboard

3.4 测试

  • 运行一个 nginx 的 pod
➜ kubectl run hello --image=nginx --port=80
deployment "hello" created
  • 导出运行的 nginx 服务
➜ kubectl expose deployment hello --type=NodePort
service "hello" exposed
  • 查看一下运行情况,需要等一会才会显示状态为 Running
➜ kubectl get pod
NAME                    READY     STATUS    RESTARTS   AGE
hello-6dbbbb95d-4cqwz   1/1       Running   0          2m
  • curl 访问测试
➜ curl $(minikube service hello --url)
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

3.5 其它

# 查看集群的所有资源
➜ kubectl get all
➜ kubectl get all -o wide

# 进入节点服务器
➜ minikube ssh

# 执行节点服务器命令,例如查看节点 docker info
➜ minikube ssh -- docker info

# 删除集群
➜ minikube delete

# 关闭集群
➜ minikube stop

参考文献


— The End —
Last modification:January 1, 2020
If you think my article is useful to you, please feel free to appreciate