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