一台服务器部署 Kubernetes
仅有一台服务器(单节点) 的情况下部署 Kubernetes 集群(K8s),并安装 Kuboard 作为可视化管理界面。
一、基本概念解释
1. Kubernetes (K8s) v1.26.4
-
是什么:Kubernetes 是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用(如 Docker 容器)。
-
版本 v1.26.4:这是 Kubernetes 的某个稳定版本(发布于 2023 年初),属于 v1.26 系列。注意:v1.26 开始移除了对 Docker 的直接支持(dockershim),改用 CRI(容器运行时接口),推荐使用 containerd 或 CRI-O。
-
功能
:
- 自动部署应用(Pods)
- 自动扩缩容
- 服务发现与负载均衡
- 滚动更新与回滚
- 健康检查与自我修复
2. Kuboard v3.5.2.4
-
是什么:Kuboard 是一个开源的 Kubernetes 图形化管理界面,专为国内用户设计,支持中文,界面友好,适合初学者快速上手。
-
版本 v3.5.2.4:这是 Kuboard 的一个稳定版本,兼容 Kubernetes v1.26.x。
-
功能
:
- 可视化管理 Pod、Deployment、Service、ConfigMap 等资源
- 支持多集群管理
- 提供快速入门向导和 YAML 编辑器
- 内置监控和日志查看(需集成)
✅ 关系总结:
- Kubernetes 是“操作系统”(底层引擎)
- Kuboard 是“图形桌面”(上层管理工具)
二、你只有一台服务器?可以部署吗?
✅ 完全可以!
你可以部署一个 单节点 Kubernetes 集群(Single-node K8s Cluster),适用于学习、测试或轻量级生产环境。
⚠️ 注意:生产环境建议至少 3 节点(1 master + 2 worker)以实现高可用。
三、部署方案:使用 kubeadm 部署单节点 K8s + Kuboard
我们使用官方推荐工具 kubeadm 来搭建。
环境要求(单台服务器)
| 项目 | 要求 |
|---|---|
| 操作系统 | Ubuntu 20.04/22.04 或 CentOS 7/8 |
| CPU | ≥2 核 |
| 内存 | ≥2GB(建议 4GB+) |
| 硬盘 | ≥20GB |
| 网络 | 可访问外网(下载镜像) |
| IP | 你的公网 IP(如:1.2.3.4) |
四、详细部署步骤(以 Ubuntu 22.04 为例)
步骤 1:初始化服务器
# 登录服务器
ssh root@your-server-ip
# 更新系统
sudo apt update && sudo apt upgrade -y
步骤 2:安装 Docker / Containerd(推荐 containerd)
Kubernetes v1.26+ 推荐使用 containerd 作为容器运行时。
# 安装 containerd
sudo apt install -y containerd
# 生成默认配置
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
# 修改配置:使用 systemd cgroup 驱动(重要!)
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml
# 重启 containerd
sudo systemctl restart containerd
sudo systemctl enable containerd
步骤 3:安装 kubeadm、kubelet、kubectl
# 添加 Kubernetes APT 源
sudo apt install -y curl gnupg
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/kubernetes.gpg
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
# 安装三大件
sudo apt update
sudo apt install -y kubelet=1.26.4-00 kubeadm=1.26.4-00 kubectl=1.26.4-00
# 锁定版本,防止自动升级
sudo apt-mark hold kubelet kubeadm kubectl
步骤 4:初始化 Kubernetes Master(单节点即 Master)
# 关闭交换分区(K8s 要求)
sudo swapoff -a
# 永久关闭:注释 /etc/fstab 中的 swap 行
# 初始化控制平面
sudo kubeadm init \
--kubernetes-version=1.26.4 \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12 \
--ignore-preflight-errors=Swap
✅ 成功后会输出类似:
Your Kubernetes control-plane has initialized successfully! To start using your cluster, you need to run: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config Then you can join any number of worker nodes by running the following on each as root: kubeadm join 1.2.3.4:6443 --token ... --discovery-token-ca-cert-hash ...
步骤 5:配置 kubectl
# 配置普通用户使用 kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
验证:
kubectl get nodes
# 输出应显示 master 节点,状态 NotReady(等待网络插件)
步骤 6:安装 Pod 网络插件(Flannel)
# 安装 Flannel
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
等待几分钟,再检查节点状态:
kubectl get nodes
# 应该变为 Ready
步骤 7:允许 Master 节点调度 Pod(单节点必须)
默认 Master 不允许运行 Pod,我们需要解除限制:
kubectl taint nodes --all node-role.kubernetes.io/control-plane-
# 或旧版本:node-role.kubernetes.io/master-
现在你的单节点可以运行应用了。
五、安装 Kuboard v3.5.2.4
Kuboard 提供了一键安装脚本。
方法一:使用官方安装脚本(推荐)
# 下载安装脚本
curl -sfL https://get.kuboard.cn/install.sh -o install-kuboard.sh
# 执行安装(指定版本)
sudo KUBOARD_VERSION=v3.5.2.4 KUBOARD_AGENT_SERVER_IP=your-server-ip bash install-kuboard.sh
🔁 替换
your-server-ip为你的服务器公网 IP,例如1.2.3.4
方法二:手动应用 YAML(备用)
kubectl apply -f https://addons.kuboard.cn/kuboard/v3.5.2.4.yaml
步骤 8:访问 Kuboard
安装完成后,执行:
kubectl get pods -n kuboard -o wide
kubectl get svc -n kuboard
你应该看到服务暴露在 32567 端口(NodePort)。
访问地址:
http://your-server-ip:32567
默认用户名:admin
默认密码:Kuboard12345
🔐 首次登录后请立即修改密码!
六、验证部署是否成功
-
K8s 是否正常:
kubectl get nodes # 应显示 Ready kubectl get pods -A # 大部分 Pod Running -
Kuboard 是否正常:
- 能打开网页
- 能看到集群节点、命名空间、工作负载等信息
七、常见问题与解决
| 问题 | 解决方法 |
|---|---|
kubeadm init 失败,提示 swap |
确保 swapoff -a 且 /etc/fstab 注释 swap |
| 节点 NotReady | 检查 containerd 是否运行,网络插件是否安装 |
| 无法拉取镜像 | 使用国内镜像源(阿里云)或提前 kubeadm config images pull |
| Kuboard 打不开 | 检查防火墙是否开放 32567 端口 |
kubectl 命令找不到 |
确保 .kube/config 配置正确 |
八、后续建议
- 安全加固:
- 配置 HTTPS(Kuboard 支持接入 ingress + TLS)
- 修改默认密码
- 配置 RBAC 权限
- 监控与日志:
- 安装 Prometheus + Grafana
- 集成 ELK 或 Loki 查看日志
- 备份:
- 定期备份
/etc/kubernetes/和.kube/config
- 定期备份
更多推荐

所有评论(0)