使用 microK8s 快速搭建 K8s 环境
MicroK8s 是 Canonical(Ubuntu 的母公司)推出的轻量级 Kubernetes 发行版,专为开发测试和边缘计算场景设计。它只需一条命令即可安装,占用资源少,是学习和测试 K8s 的理想选择。
MicroK8s 的特点
- 单命令安装:
snap install microk8s --classic - 低资源占用:最小化运行仅需约 2GB 内存
- 组件可选:按需启用 DNS、Dashboard、Ingress 等插件
- 单节点到高可用:可从单个节点扩展到多节点集群
- 内置 kubectl:无需额外安装 kubectl
安装 MicroK8s
# 安装
sudo snap install microk8s --classic
# 将当前用户加入 microk8s 用户组(避免使用 sudo)
sudo usermod -a -G microk8s $USER
newgrp microk8s
# 设置命令别名
sudo snap alias microk8s.kubectl kubectl
# 查看运行状态
microk8s status --wait-ready
启动常用插件
# 启用 DNS(必开,否则 Pod 无法解析域名)
microk8s enable dns
# 启用 Dashboard(Web 管理界面)
microk8s enable dashboard
# 启用 Ingress(HTTP 路由)
microk8s enable ingress
# 启用存储
microk8s enable storage
# 启用 Metrics Server(资源监控)
microk8s enable metrics-server
# 查看所有可用插件
microk8s enable --help
验证集群
# 查看所有 Pod
kubectl get all --all-namespaces
# 查看节点状态
kubectl get nodes -o wide
# 查看集群信息
kubectl cluster-info
# 测试 Pod 运行
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pods
常见问题排查
镜像拉取失败
MicroK8s 使用的镜像源(registry.k8s.io)在国内可能无法直接访问,导致 Pod 启动失败。
排查方法:
# 查看 Pod 状态
kubectl get pods --all-namespaces
# 查看详细错误
kubectl describe pod <pod-name> -n <namespace>
解决方法:
# 1. 安装 Docker
sudo snap install docker
# 2. 搜索可用的 pause 镜像
docker search pause:3.7
# 3. 拉取一个可用的镜像
docker pull qazwsxqwe123/pause:3.7
# 4. 修改 tag
docker tag qazwsxqwe123/pause:3.7 registry.k8s.io/pause:3.7
# 5. 导出镜像
docker save registry.k8s.io/pause:3.7 > pause37.tar
# 6. 导入到 MicroK8s 的容器运行时
microk8s.ctr image import pause37.tar
# 7. 重启 MicroK8s
microk8s stop && microk8s start
其他常见问题
| 问题 | 原因 | 解决 |
|---|---|---|
microk8s is not running |
snap 服务未启动 | sudo snap start microk8s |
| 内存不足 | 资源不够 | 检查 free -h,关闭不必要的进程 |
| 磁盘不足 | 镜像占用空间 | microk8s kubectl delete pod --all 清理 |
使用 kubectl 访问 MicroK8s
本机访问
# 使用内置 kubectl
microk8s kubectl get pods
# 如果配置了别名
kubectl get pods
远程访问
# 导出 kubeconfig
microk8s config > ~/.kube/config
# 如果远程访问,需要修改 server 地址
# 将 127.0.0.1 替换为 MicroK8s 节点的 IP 地址
卸载 MicroK8s
sudo snap remove microk8s
对比其他 K8s 方案
| 方案 | 特点 | 适用场景 |
|---|---|---|
| MicroK8s | 轻量、单命令安装 | 开发测试、边缘计算 |
| k3s | 小而精、二进制定制 | 边缘计算、IoT |
| kubeadm | 官方工具、灵活 | 生产集群搭建 |
| Minikube | 本地开发、单节点 | 个人开发环境 |
| Kind | 基于 Docker | CI/CD 测试 |
总结
MicroK8s 是入门 Kubernetes 的最快方式。它不仅适合学习,还能用于实际开发测试。如果遇到镜像拉取问题,按本文的 Docker 导入法即可解决。熟悉 MicroK8s 后,可以考虑迁移到 kubeadm 搭建的生产集群。
Comments | 2条评论