为什么要在本地跑 ref="/tag/2020/" style="color:#8B0506;font-weight:bold;">Kubernetes?
做后端开发的同事老张最近被项目组拉去搞微服务,原本一套 Spring Boot 应用打包部署很简单,现在拆成十几个服务,光是启动顺序就让他头大。他试了 Docker Compose,但总觉得和生产环境差了点意思——毕竟线上用的是 Kubernetes。这时候,minikube 就派上用场了。
minikube 是一个让开发者在本地快速搭建单节点 Kubernetes 集群的工具。它不追求高可用,也不适合跑生产应用,但它能让你在笔记本上体验完整的 K8s 功能,比如 Deployment、Service、Ingress,甚至还能装 Helm。
安装前准备
你的电脑得支持虚拟化,大多数现代笔记本都没问题。Windows 要开 Hyper-V 或者用 WSL2,Mac 推荐用内置的 hypervisor,Linux 用户可以直接用 Docker 或者 kvm2 驱动。
先确认你已经装好了 kubectl,这是操作 Kubernetes 的命令行工具。没装的话,可以这样下载:
curl -LO https://dl.k8s.io/release/v1.28.0/bin/linux/amd64/kubectl
chmod +x kubectl
sudo mv kubectl /usr/local/bin/安装 minikube
macOS 用户可以用 Homebrew:
brew install minikubeLinux 用户可以直接下载二进制:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikubeWindows 用户建议用 Chocolatey:
choco install minikube启动集群
打开终端,运行:
minikube start第一次启动会比较慢,因为它要下载镜像和 ISO 文件。等看到“Done! kubectl is now configured to use cluster”就说明成功了。
你可以用下面这句验证状态:
minikube status想看 dashboard 也没问题:
minikube dashboard浏览器会自动弹出 Kubernetes 的图形界面,适合不想敲命令的同学。
部署一个简单应用
来个经典的 Nginx 示例:
kubectl create deployment nginx-app --image=nginx
kubectl expose deployment nginx-app --port=80 --type=NodePort然后用 minikube 获取服务地址:
minikube service nginx-app --url返回的 URL 粘贴到浏览器,看到 Welcome to nginx! 就说明跑通了。
日常使用小技巧
minikube stop 可以关掉集群省资源,start 再拉起来。如果改配置,比如想加内存:
minikube stop
minikube start --memory=4096 --cpus=2有时候镜像拉不下来,可以提前导入:
minikube image load your-custom-image:latest这招对本地构建的镜像特别有用。
老张用了两周 minikube,现在已经能自己写 YAML 文件部署整套服务了。他说:“虽然只是个玩具集群,但踩过的坑跟线上的差不了太多。”