WSの小屋

使用 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条评论