根据近期紧急的项目需求,需要构建一套完整的 Kubernetes 私有化部署解决方案。支持多节点集群、中间件集成、监控告警,并提供现代化的 Web UI 管理界面。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一、项目背景

在云原生时代,Kubernetes 已经成为容器编排的事实标准。然而,对于许多企业而言,由于数据安全、合规要求、成本控制等因素,私有化部署仍然是最佳选择。

如何快速、稳定、可重复地部署一套生产级的 Kubernetes 集群?这正是 ansible-k8s-private 项目要解决的问题。

二、核心特性

1. 开箱即用的部署架构

项目采用 Ansible 作为基础设施自动化工具,提供了一套完整的 9 节点(可以自定义扩展)部署骨架:

  • 3个 Master 节点:高可用的控制平面
  • 3个 ETCD 节点:独立的外部 etcd 集群
  • 2个 Worker 节点:工作负载节点
  • 3个中间件节点:Redis、MySQL、MongoDB 等

💡 节点数量可根据实际环境灵活调整

2. 一体化中间件生态

内置了生产环境所需的各种中间件支持:

中间件列表:
✅ MySQL 8.0
✅ Redis 6.2
✅ MongoDB 7.0
✅ RabbitMQ 3.13
✅ Elasticsearch 7.17 + Kibana
✅ Prometheus + Alertmanager + Grafana
✅ Thanos(长期存储)

3. 可视化 Web UI 管理界面

最亮眼的特性是内置的 Web UI 管理界面

功能特性

  • 📊 实时部署状态监控
  • 📝 在线日志查看(支持实时刷新)
  • 🎨 仿原生 ansible-playbook 日志颜色显示
  • 🔐 JWT 认证系统
  • ⚙️ 图形化配置管理
  • 🚀 一键式部署操作

4. 企业级高可用架构

  • Keepalived + Nginx:多 VIP 负载均衡
  • 外部 ETCD 集群:独立的高可用存储
  • 健康检查与自动恢复:内置重试机制
  • 幂等性保证:重复执行安全可靠

三、 技术栈

技术组件版本/技术
Kubernetesv1.18.15
Ansible最新稳定版
Docker运行时
Containerd容器运行时
CalicoCNI 网络插件
FastAPIWeb UI 后端
Alpine.jsWeb UI 前端交互

四、 项目结构

ansible-k8s-private/
├── inventories/prod/          # 生产环境配置
│   ├── hosts.ini              # 主机清单
│   └── group_vars/all/        # 全局变量
├── roles/                      # Ansible 角色
│   ├── k8s_offline/           # K8s 离线部署
│   ├── external_etcd_v2/      # ETCD 集群
│   ├── baseline_standard/     # 系统基线
│   └── ...
├── playbooks/                 # 部署剧本
├── webui/                     # Web UI 管理界面
│   ├── main.py               # FastAPI 后端
│   └── templates/            # 前端模板
├── site.yml                   # 主编排文件
└── run.sh                     # 便捷执行脚本

五、快速开始

前置要求

  • Python 3.9+
  • Ansible 最新版
  • SSH 免密登录到目标主机
  • 目标主机:CentOS/RHEL 7+

1. 克隆项目

git clone https://github.com/pwxwmm/ansible-k8s-private.git
cd ansible-k8s-private

2. 配置主机信息

编辑 inventories/prod/hosts.ini,填入你的主机 IP:

[k8s_masters]
192.168.100.12
192.168.100.13
192.168.100.17

[k8s_workers]
192.168.100.52
192.168.100.41

3. 配置全局变量

编辑 inventories/prod/group_vars/all/globals.yml

# VIP 配置
vips:
  - name: vip1_core
    ip: 192.168.100.211
    bind_group: lb_vip_a
    purpose: core/k8s

# SSH 配置
ansible_user: root
ansible_password: "YOUR_PASSWORD"

4. 执行部署

# 生成密码文件
./run.sh passwords

# 系统准备
./run.sh prepare

# 部署 K8s 集群
./run.sh k8s

# 部署中间件
./run.sh middleware

# 部署监控
./run.sh monitoring

5. 启动 Web UI

cd webui
./start.sh

访问 http://localhost:8000,享受可视化管理界面!

六、 核心亮点

日志颜色优化

Web UI 完美模拟了 ansible-playbook 的原生输出:

  • 🟢 普通日志:绿色文本(标准输出)
  • 🔵 PLAY 标题:蓝色加粗
  • 🟣 TASK 标题:紫色加粗
  • 🟡 CHANGED 状态:黄色高亮
  • 🔴 FAILED 状态:红色警告

让你在 Web 界面中也能享受到终端原汁原味的体验!

安全性保障

项目代码已进行敏感数据脱敏处理

  • ✅ IP 地址脱敏:172.20.65.x192.168.100.x
  • ✅ 密码替换为占位符:PASSWORD_REPLACE_THIS
  • ✅ 主机名标准化:hb-node-example-node-
  • ✅ 可直接安全推送到 GitHub

七、 部署流程图

┌─────────────────┐
│   预检查脚本     │  ← ./run.sh prechecks
└────────┬────────┘
         ↓
┌─────────────────┐
│   系统准备      │  ← ./run.sh prepare
│  (基线+存储)     │
└────────┬────────┘
         ↓
┌─────────────────┐
│  部署 ETCD      │  ← ./run.sh etcd
└────────┬────────┘
         ↓
┌─────────────────┐
│  部署 K8s       │  ← ./run.sh k8s
│  (Master+Worker)│
└────────┬────────┘
         ↓
┌─────────────────┐
│  部署中间件      │  ← ./run.sh middleware
└────────┬────────┘
         ↓
┌─────────────────┐
│  部署监控       │  ← ./run.sh monitoring
└─────────────────┘

八、 适用场景

传统企业:需要私有化部署 Kubernetes 集群
金融机构:对数据安全有严格要求
政府机构:需符合合规要求
边缘计算:离线环境部署
学习研究:理解 Kubernetes 完整部署流程

九、 可扩展性

项目采用模块化设计,易于扩展:

  • 新增中间件:在 roles/ 下创建新角色
  • 自定义监控:修改 globals.yml 中的 toggles
  • 多环境支持:复制 inventories/ 创建新环境

十、 相关资源

十一、 贡献

欢迎提交 PR 和 Issue!项目使用了以下技术:

  • Ansible:基础设施即代码
  • 🐳 Docker:容器化部署
  • ☸️ Kubernetes:容器编排
  • 🚀 FastAPI:现代 Web 框架
  • 💎 Alpine.js:轻量级前端框架

ansible-k8s-private 不仅仅是一个部署脚本,更是一套企业级的私有化 Kubernetes 解决方案

核心价值

  • 🎯 开箱即用:预置配置,快速部署
  • 🛡️ 生产就绪:高可用、健康检查、自动恢复
  • 🎨 用户友好:可视化 UI,降低使用门槛
  • 📦 生态完整:中间件、监控、日志一应俱全

如果你正在为企业构建私有化的容器编排平台,或者想要深入了解 Kubernetes 的完整部署流程,这个项目绝对值得一看!


作者:mmwei3
仓库GitHub - ansible-k8s-private
License:MIT
Stars:欢迎 Star ⭐


最后的话:在数字化转型的道路上,基础设施的自动化是现代企业的必修课。希望这个项目能帮助更多团队快速搭建自己的容器平台!

更多推荐