一、基本概念解释

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

🔐 首次登录后请立即修改密码!


六、验证部署是否成功

  1. K8s 是否正常

    kubectl get nodes          # 应显示 Ready
    kubectl get pods -A        # 大部分 Pod Running
    
  2. Kuboard 是否正常

    • 能打开网页
    • 能看到集群节点、命名空间、工作负载等信息

七、常见问题与解决

问题 解决方法
kubeadm init 失败,提示 swap 确保 swapoff -a/etc/fstab 注释 swap
节点 NotReady 检查 containerd 是否运行,网络插件是否安装
无法拉取镜像 使用国内镜像源(阿里云)或提前 kubeadm config images pull
Kuboard 打不开 检查防火墙是否开放 32567 端口
kubectl 命令找不到 确保 .kube/config 配置正确

八、后续建议

  1. 安全加固
    • 配置 HTTPS(Kuboard 支持接入 ingress + TLS)
    • 修改默认密码
    • 配置 RBAC 权限
  2. 监控与日志
    • 安装 Prometheus + Grafana
    • 集成 ELK 或 Loki 查看日志
  3. 备份
    • 定期备份 /etc/kubernetes/.kube/config
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐