单机搭建 K8s:k3s / minikube 快速上手
在一台 VPS 上用 k3s 几分钟起一个可用的 Kubernetes,或用 minikube 在本地体验。
Kubernetes(K8s)听起来很重,但在单台机器上跑通一个能用的集群其实很快。生产环境的多节点部署另说,如果只是想学习、做实验或跑个小服务,单机就足够了。本文给出两条路:服务器上用 k3s,本地用 minikube。
先看资源要求
- k3s:官方最低约 512MB 内存、1 核 CPU;实际建议 1GB 内存 + 12 vCPU + 5GB 磁盘 起步会更顺。它是轻量发行版,天生适合 VPS。
- minikube:建议 2 核 CPU + 2GB 内存 + 20GB 磁盘,并且需要一个驱动(Docker 最常用)。
内存太小会频繁触发 OOM,给你的服务器留点余量。
方式一:在 VPS 上装 k3s(最省事)
在 Ubuntu/Debian 上,一条命令搞定:
curl -sfL https://get.k3s.io | sh -
脚本会装好 k3s 和内置的 kubectl,并把它注册成 systemd 服务、开机自启。装完后验证节点:
sudo kubectl get nodes
看到一个节点显示 Ready 就成功了。
kubeconfig 在哪里
k3s 把访问凭据写在 /etc/rancher/k3s/k3s.yaml。如果想不加 sudo 直接用 kubectl,复制一份到用户目录即可:
mkdir -p ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown $(id -u):$(id -g) ~/.kube/config
之后 kubectl 默认读 /.kube/config,也可以用环境变量 export KUBECONFIG=/.kube/config 显式指定。
方式二:本地用 minikube 体验
在你自己的电脑上装好 Docker 后:
minikube start
kubectl get nodes
minikube 会自动写好 /.kube/config。不想用了就 minikube stop 暂停,彻底清掉用 minikube delete。
跑通第一个应用
不管走哪条路,下面的命令都通用。创建一个 Nginx 部署并查看:
kubectl create deployment web --image=nginx
kubectl get pods
等 Pod 变成 Running,把它暴露出来试着访问:
kubectl expose deployment web --port=80 --type=NodePort
kubectl get svc web
用完后清理:
kubectl delete deployment web
kubectl delete svc web
小结
单机学 K8s,VPS 上首选 k3s(一条 curl 命令),本地体验用 minikube;记住 kubeconfig 在 /.kube/config,而 kubectl get nodes 是你的第一块试金石。跑通一个 kubectl create deployment 之后,再去研究 Service、Ingress 和多节点集群就顺理成章了。