Ubuntu安装单节点MicroK8s

在 Ubuntu 24.04 上安装 MicroK8s 非常简单。以下是完整的安装步骤:

1. 系统准备

更新系统

bash

复制代码
sudo apt update
sudo apt upgrade -y

检查系统版本

bash

复制代码
lsb_release -a

2. 安装 MicroK8s

使用 Snap 安装(推荐方法)

bash

复制代码
sudo snap install microk8s --classic --channel=1.30

或者安装最新稳定版

bash

复制代码
sudo snap install microk8s --classic

3. 配置用户权限

将用户添加到 microk8s 组

bash

复制代码
sudo usermod -a -G microk8s $USER
sudo chown -f -R $USER ~/.kube

重新登录或刷新组权限

bash

复制代码
# 方法1:重新登录系统
logout
# 然后重新登录

# 方法2:使用 newgrp(临时生效)
newgrp microk8s

4. 等待 MicroK8s 就绪

检查状态

bash

复制代码
microk8s status --wait-ready

如果等待时间较长,可以查看详细日志

bash

复制代码
microk8s inspect

5. 配置别名(可选但推荐)

设置 kubectl 和 ctr 别名

bash

复制代码
sudo snap alias microk8s.kubectl kubectl
sudo snap alias microk8s.ctr ctr

验证别名

bash

复制代码
kubectl get nodes
kubectl get pods -A

6. 启用常用插件

启用核心插件

bash

复制代码
microk8s enable dns storage ingress dashboard hostpath-storage

或者逐个启用

bash

复制代码
microk8s enable dns                  # 内部 DNS 服务
microk8s enable storage              # 存储类
microk8s enable ingress              # 入口控制器
microk8s enable dashboard            # Web 管理界面
microk8s enable hostpath-storage     # 主机路径存储
microk8s enable registry             # 本地镜像仓库
microk8s enable metallb              # 负载均衡器

7. 验证安装

创建验证脚本

bash

复制代码
cat > check-microk8s.sh << 'EOF'
#!/bin/bash
echo "=== MicroK8s 安装验证 ==="
echo "1. 集群状态:"
microk8s status --wait-ready
echo ""

echo "2. 节点状态:"
kubectl get nodes -o wide
echo ""

echo "3. 所有命名空间的 Pod:"
kubectl get pods -A
echo ""

echo "4. 已启用的插件:"
microk8s status
echo ""

echo "5. 存储类:"
kubectl get storageclass
echo ""

echo "6. 服务状态:"
kubectl get services -A
EOF

chmod +x check-microk8s.sh
./check-microk8s.sh

8. 访问 Dashboard

获取 Dashboard Token

bash

复制代码
# 获取访问令牌
kubectl -n kube-system get secret | grep default-token
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep default-token | awk '{print $1}') | grep token:

启动代理访问 Dashboard

bash

复制代码
# 在后台启动代理
kubectl proxy --address='0.0.0.0' --accept-hosts='.*' &

# 获取服务器 IP
SERVER_IP=$(hostname -I | awk '{print $1}')

echo "Dashboard 访问地址:"
echo "http://$SERVER_IP:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/"

9. 基本使用测试

部署测试应用

bash

复制代码
# 创建测试命名空间
kubectl create namespace test

# 部署 Nginx
kubectl create deployment nginx --image=nginx:latest -n test

# 暴露服务
kubectl expose deployment nginx --port=80 --type=NodePort -n test

# 查看服务
kubectl get all -n test

10. 故障排除

如果遇到问题

检查服务状态

bash

复制代码
sudo systemctl status snap.microk8s.daemon-service
查看日志

bash

复制代码
sudo journalctl -u snap.microk8s.daemon-service -f
重置 MicroK8s(如果需要重新开始)

bash

复制代码
microk8s reset
检查端口占用

bash

复制代码
sudo netstat -tlnp | grep -E ':(8001|16443|10250|10255)'

11. 优化配置(可选)

调整资源限制

bash

复制代码
# 编辑 MicroK8s 配置
sudo nano /var/snap/microk8s/current/args/kube-apiserver

启用更多插件

bash

复制代码
# 查看所有可用插件
microk8s status

# 启用其他有用插件
microk8s enable helm3
microk8s enable rbac
microk8s enable community

12. 卸载 MicroK8s

bash

复制代码
# 完全卸载
sudo snap remove microk8s --purge

# 清理配置和数据
sudo rm -rf /var/snap/microk8s
rm -rf ~/.kube

安装完成验证

安装完成后,您应该看到类似以下输出:

text

复制代码
microk8s is running
high-availability: no
  datastore master nodes: 127.0.0.1:19001
  datastore standby nodes: none
addons:
  enabled:
    dashboard            # (core)
    dns                  # (core)
    hostpath-storage     # (core)
    ingress              # (core)
    storage              # (core)

现在您已经在 Ubuntu 24.04 上成功安装并配置了 MicroK8s,可以开始使用 Kubernetes 了!

相关推荐
运维栈记15 小时前
虚拟化网络的根基-网络命名空间
网络·docker·容器
Joren的学习记录16 小时前
【Linux运维大神系列】Kubernetes详解3(kubeadm部署k8s1.23高可用集群)
linux·运维·kubernetes
Hellc00716 小时前
Docker网络冲突排查与解决方案:完整指南
网络·docker·容器
hanyi_qwe17 小时前
发布策略 【K8S (三)】
docker·容器·kubernetes
眠りたいです17 小时前
Docker核心技术和实现原理第二部分:docker镜像与网络原理
运维·网络·docker·容器
德育处主任17 小时前
『NAS』在群晖部署图片压缩工具-Squoosh
前端·javascript·docker
Mr. Cao code18 小时前
Docker数据管理:持久化存储最佳实践
java·docker·容器
盛夏52020 小时前
Docker容器化部署SpringBoot+Vue项目:从零到一在阿里云宝塔面板的实践指南
阿里云·docker·云计算
Cyber4K20 小时前
【Kubernetes专项】DockerFile、数据持计划、网络模式及资源配额
运维·网络·云原生·容器·kubernetes
Joren的学习记录21 小时前
【Linux运维疑难杂症】k8s集群创建calico网络失败
linux·运维·kubernetes