单机搭建 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 和多节点集群就顺理成章了。