起始
minikube 是一个本地的 k8s, 专注于为 k8s 创建一个简单的学习和开发环境。
你只需要一个 Docker(或者类似兼容的)容器,或者一个虚拟机环境,k8s 只需要一个单独的命令:minikube start
环境需求
- >= 2个CPU核心
- >= 2GB 内存
- >=20GB 磁盘空间
- Internet 网络来凝结
- 容器或虚拟机管理器, such as: Docker, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware Fusion/Workstation
安装使用
1. 安装
以安装 linux x86-64, stable, binary 为例
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
2. 启动集群
在终端中使用root权限(但不要使用root登录),执行:
minikube start
3. 和你的集群进行交互
如果你已经安装成功,你现在就可以访问你崭新的集群了:
kubectl get po -A
或者, minikube 能够下载合适的kubectl版本,你应该能够这样使用它:
minikube kubectl -- get po -A
你还可以把下面的文本写到你的shell配置中减小你的负担:
alias kubectl="minikube kubectl --"
最后,一些服务可能还处于启动状态中,这是正常的情况。minikube带了一个仪表盘来帮助你检查你的环境:
minikube dashboard
4. 部署应用程序
创建一个示例部署并暴露在8080端口上:
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
kubectl expose deployment hello-minikube --type=NodePort --port=8080
注意,此处 k8s.gcr.io 在国内可能无法访问,可以使用镜像地址:
运行上面的命令需要一些时间,但是你的 deployment 很快将会显示 **up。**在你运行下面命令的时候:
kubectl get services hello-minikube
最简单的访问这个服务的方式是让 minikube 为你启动一个 web 浏览器:
minikube service hello-minikube
或者,使用 kubectl 转发端口:
kubectl port-forward service/hello-minikube 7080:8080
现在就可以使用: http://localhost:7080/. 来访问你的应用程序啦!
访问这个地址,你应该能够看到来自nginx的请求元数据,类似CLIENT VALUES
,SERVER VALUES
,HEADERS RECEIVED
, 以及在应用程序输出中的 BODY
。尝试改变请求路径并观察 CLIENT VALUES
. 同样的,你也可以执行一个相同的POST
请求并且观察 BODY
节点的输出。
负载均衡部署(LoadBalancer deployments)
为了访问 LoadBalancer deployment, 使用 “minikube tunnel” 命令。这里是一个示范:
kubectl create deployment balanced --image=k8s.gcr.io/echoserver:1.4
kubectl expose deployment balanced --type=LoadBalancer --port=8080
在其他窗口中,为 “balanced” deployment 启动一个 tunnel 并创建一个可路由的 IP :
minikube tunnel
执行下面的命令查找可路由IP, 检查EXTERNAL-IP
列:
kubectl get services balanced
你现在可用通过 EXTERNAL-IP
: 8080 访问你的应用了。
5. 管理你的集群
暂停 k8s 并且不影响已部署的应用:
minikube pause
恢复暂停的示例
minikube unpause
停止一个集群
minikube stop
添加一个默认的内存限制(需要重启集群)
minikube config set memory 16384
浏览易于安装的k8s服务目录
minikube addons list
创建第二个运行旧版本 k8s 的集群
minikube start -p aged --kubernetes-version=v1.16.1
删除全部的minikube集群
minkube delete --all