前言

Minikube可以实现一种轻量级的Kubernetes集群,通过在本地计算机上创建虚拟机并部署只包含单个节点的简单集群。Minikube适用于Linux,MacOS和Windows系统。Minikube CLI提供集群管理的基本操作,包括 start、stop、status、 和delete。

安装Minikube

Minikube 只是一个编排工具, 具体执行的容器程序需要另外安装, 可以是 Docker, 也可使 VirtualBox . 安装方式各有不同, 这里以 docker 为例.

在mac上执行以下命令.

# 下载minikube 最新版本
brew install minikube

# 启动minikube集群, 并设置了代理
# --vm-driver=hyperkit flag 指定Docker for Mac。默认会自动检测
# 这里 NO_PROXY 环境变量设置不应通过代理的ip范围, 这里的ip范围是 minikube 使用的, 如果不设置,则minikube可能无法访问VM中的资源
minikube start --vm-driver=hyperkit --docker-env HTTP_PROXY=http://192.168.3.125:10087  --docker-env HTTPS_PROXY=http://192.168.3.125:10087 --docker-env NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.99.0/24,192.168.39.0/24

执行以上命令会自动创建集群, 集群启动成功之后我们就可以使用 kubectl 命令和集群进行交互

测试

接下来使用一个已有镜像, 创建一个k8s 应用

kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10
# deployment.apps/hello-minikube created  # 看到该输出说明创建成功

指定 hello-minikube 创建一个服务

kubectl expose deployment hello-minikube --type=NodePort --port=8080
# service/hello-minikube exposed

检查 Pod 是否启动 kubectl get pod

执行 minikube service hello-minikube --url 查看服务的 URL, 访问该url 可以看到如下输出

Hostname: hello-minikube-797f975945-v2cl4

Pod Information:
        -no pod information available-

Server values:
        server_version=nginx: 1.13.3 - lua: 10008

Request Information:
        client_address=172.17.0.1
        method=GET
        real path=/
        query=
        request_version=1.1
        request_scheme=http
        request_uri=http://192.168.64.3:8080/

Request Headers:
        accept=*/*
        host=192.168.64.3:30489
        user-agent=curl/7.62.0

Request Body:
        -no body in request-

最后执行 kubectl delete services hello-minikube 即可删除服务

执行 kubectl delete deployment hello-minikube 删除部署

执行 minikube stop 停止本地 minikube 集群

执行 minikube delete 删除本地集群