Loading... # 服务器集群运维文档 # 一、集群概览 ## 1. 集群信息 ### A. 节点列表 | 主机名 | IP 地址 | 角色 | 操作系统 | 内核版本 | |--------|---------|------|----------|----------| | xlab-ecs-node2 | 192.168.86.152 | Kubernetes 节点 | Ubuntu 22.04.5 LTS | 5.15.0-173-generic | | xlab-ecs-node3 | 192.168.86.153 | Docker 容器节点 | Ubuntu 22.04.5 LTS | 5.15.0-173-generic | ### B. 集群用途 - xlab-ecs-node2:Kubernetes 集群工作节点 - xlab-ecs-node3:Docker 容器部署节点 # 二、硬件配置 ## 1. CPU 配置 ### A. 处理器规格 - 型号:Intel Xeon E5-2697 v2 @ 2.70GHz - 核心数:24 核(12 核/单线程 × 2 线程) - 频率范围:1200 MHz - 3500 MHz - 架构:x86_64 ### B. 虚拟化支持 - VT-x:已启用 - VT-d:已启用 ## 2. 内存配置 | 节点 | 总内存 | 可用内存 | Swap | |------|--------|----------|------| | xlab-ecs-node2 | 62 GB | 约 58 GB | 8 GB | | xlab-ecs-node3 | 47 GB | 约 40 GB | 8 GB | ## 3. 存储配置 ### A. 磁盘列表 | 节点 | 设备 | 容量 | 类型 | 挂载点 | 用途 | |------|------|------|------|--------|------| | xlab-ecs-node2 | sda | 931.8 GB | SSD | / | 系统盘 | | xlab-ecs-node3 | sda | 931.8 GB | SSD | / | 系统盘 | | xlab-ecs-node3 | sdb | 238.5 GB | 未挂载 | - | 预留扩展 | ### B. 文件系统 - 类型:ext4 - 主分区:/dev/sda2 挂载于 / ## 4. 网络配置 ### A. 网卡信息 - 网卡 1:enp11s0(Broadcom BCM57762 千兆以太网) - 网卡 2:enp12s0(Broadcom BCM57762 千兆以太网) - 无线网卡:wlp13s0(Broadcom BCM4360 802.11ac) ### B. 网络绑定 - 绑定模式:bond0(Active-Backup) - 状态:双网卡绑定,高可用 ### C. 网络接口对比 | 节点 | bond0 MAC 地址 | 容器网络 | |------|----------------|----------| | xlab-ecs-node2 | 96:fd:b9:44:54:6b | flannel.1 + cni0 | | xlab-ecs-node3 | d2:4f:29:66:e9:df | docker0 + 多个 bridge | ## 5. 显卡配置 ### A. GPU 规格 - 型号:AMD Radeon R7 370 / R9 270X/370X(双卡) - 芯片:Curacao XT / Trinidad XT - 数量:每台服务器 2 张 # 三、系统环境 ## 1. 操作系统 ### A. 基本信息 - 发行版:Ubuntu 22.04.5 LTS(Jammy Jellyfish) - 版本 ID:22.04 - 架构:x86_64 ## 2. 内核配置 ### A. 当前内核 - 版本:5.15.0-173-generic - 编译时间:2026 年 3 月 6 日 ### B. 启动参数 ``` BOOT_IMAGE=/boot/vmlinuz-5.15.0-173-generic root=UUID=<分区-UUID> ro intel_idle.max_cstate=1 mce=off ``` ### C. 参数说明 | 参数 | 值 | 作用 | |------|-----|------| | intel_idle.max_cstate | 1 | 限制 CPU C-State 到 C1,降低延迟 | | mce | off | 禁用 Machine Check Exception | ### D. GRUB 配置 - 默认启动项:0 - 等待时间:5 秒 - 内核参数:intel_idle.max_cstate=1 mce=off ## 3. 时区配置 | 节点 | 时区 | UTC 偏移 | |------|------|---------| | xlab-ecs-node2 | Asia/Shanghai | UTC+8 | | xlab-ecs-node3 | Etc/UTC | UTC+0 | **注意**:两台节点时区不一致,建议统一为 Asia/Shanghai。 ## 4. 已安装内核 - 当前版本:5.15.0-173-generic - 旧版本:5.15.0-119-generic(备用) # 四、容器运行时 ## 1. 运行时对比 | 节点 | 容器运行时 | 网络插件 | |------|-----------|---------| | xlab-ecs-node2 | Containerd + Kubernetes | Flannel + CNI | | xlab-ecs-node3 | Docker | Bridge 模式 | ## 2. Kubernetes 节点(node2) ### A. 网络组件 - flannel.1:Overlay 网络 - cni0:CNI 网桥 - veth*:容器虚拟网卡 ### B. Pod 网络 - MTU:1450 - 网段:由 Flannel 自动分配 ## 3. Docker 节点(node3) ### A. 网络组件 - docker0:Docker 默认网桥 - br-*:用户自定义网桥 - veth*:容器虚拟网卡 ### B. 容器网络 - MTU:1500 - 模式:Bridge # 五、监控指标 ## 1. 系统资源 ### A. CPU 监控 - 使用率阈值:> 80% 告警 - 负载阈值:1 分钟 > 核心数 × 0.8 ### B. 内存监控 - 使用率阈值:> 85% 告警 - Swap 使用:> 1 GB 告警 ### C. 磁盘监控 - 使用率阈值:> 80% 告警 - inode 使用率:> 80% 告警 ## 2. 网络监控 ### A. 流量监控 - 入站流量:峰值 > 500 Mbps 告警 - 出站流量:峰值 > 500 Mbps 告警 ### B. 连接监控 - TCP 连接数:> 10000 告警 - 连接错误率:> 1% 告警 ## 3. 容器监控 ### A. Kubernetes 节点 - Pod 数量:当前运行约 6 个 Pod - 容器状态:Running/Failed 比例 ### B. Docker 节点 - 容器数量:当前运行约 20+ 容器 - 容器状态:Up/Exited 统计 ## 4. 硬件监控 ### A. 温度监控 - CPU 温度:> 80°C 告警 - 硬盘温度:> 50°C 告警 ### B. 磁盘健康 - SMART 状态:定期检查 - 坏块检测:每月执行 # 六、维护操作 ## 1. 日常巡检 ### A. 每日检查项 - 系统负载:uptime - 磁盘空间:df -h - 内存使用:free -h - 服务状态:systemctl status - 容器状态:kubectl pods / docker ps ### B. 每周检查项 - 日志审查:journalctl - 安全更新:apt list --upgradable - 备份验证:检查备份完整性 ## 2. 内核升级 ### A. 升级流程 ```bash # 1. 更新软件包索引 apt update # 2. 查看可用内核版本 apt list linux-image-generic # 3. 安装新内核 apt install linux-image-generic # 4. 更新 GRUB update-grub # 5. 重启系统 reboot ``` ### B. 回滚流程 ```bash # 1. 重启时选择旧内核 # 2. 或在 GRUB 菜单中选择Advanced options # 3. 选择 5.15.0-119-generic 内核启动 # 永久切换为旧内核 vim /etc/default/grub # 修改 GRUB_DEFAULT=0 为 GRUB_DEFAULT="1>2" update-grub ``` ## 3. 时区统一 ### A. 修改 node3 时区 ```bash # 统一为上海时区 timedatectl set-timezone Asia/Shanghai # 验证 timedatectl ``` ## 4. 磁盘扩容(node3) ### A. 挂载 sdb 磁盘 ```bash # 1. 查看磁盘信息 lsblk fdisk -l /dev/sdb # 2. 创建分区 fdisk /dev/sdb # n -> p -> 1 -> w # 3. 格式化 mkfs.ext4 /dev/sdb1 # 4. 创建挂载点 mkdir -p /data # 5. 挂载 mount /dev/sdb1 /data # 6. 永久挂载 echo '/dev/sdb1 /data ext4 defaults 0 2' >> /etc/fstab ``` ## 5. 网络故障排查 ### A. 网卡状态检查 ```bash # 查看网卡状态 ip link show # 查看 bond 状态 cat /proc/net/bonding/bond0 # 查看网络统计 ip -s link show ``` ### B. 网络连通性测试 ```bash # Ping 测试 ping -c 4 192.168.86.1 # 端口测试 telnet <目标IP> <端口> # 路由跟踪 traceroute <目标IP> ``` # 七、应急预案 ## 1. 系统无法启动 ### A. GRUB 修复 ```bash # 1. 使用 Live CD 启动 # 2. 挂载根分区 mount /dev/sda2 /mnt # 3. 重新安装 GRUB grub-install --root-directory=/mnt /dev/sda # 4. 重启 ``` ### B. 内核参数恢复 ```bash # 编辑 GRUB 配置 vim /etc/default/grub # 重置为默认 GRUB_CMDLINE_LINUX_DEFAULT="" # 更新 GRUB update-grub ``` ## 2. 磁盘满载 ### A. 快速清理 ```bash # 清理 APT 缓存 apt clean apt autoclean # 清理日志 journalctl --vacuum-size=1G # 清理 Docker docker system prune -a ``` ### B. 大文件查找 ```bash # 查找大于 1G 的文件 find / -size +1G -exec ls -lh {} \; # 查看目录占用 du -sh /* | sort -hr ``` ## 3. 内存溢出 ### A. 查看内存使用 ```bash # 查看进程内存占用 ps aux --sort=-%mem | head -20 # 查看容器内存占用 docker stats ``` ### B. 释放内存 ```bash # 清理页面缓存 sync echo 3 > /proc/sys/vm/drop_caches # 重启占用内存高的服务 systemctl restart <服务名> ``` # 八、安全加固 ## 1. 系统加固 ### A. SSH 配置 - 禁用 root 远程登录(可选) - 配置密钥认证 - 修改默认端口 ### B. 防火墙配置 ```bash # 安装 ufw apt install ufw # 允许必要端口 ufw allow 22/tcp ufw allow 80/tcp ufw allow 443/tcp # 启用防火墙 ufw enable ``` ## 2. 容器安全 ### A. 限制容器资源 - CPU 限制 - 内存限制 - 磁盘 IO 限制 ### B. 网络隔离 - 使用网络策略 - 限制容器间通信 # 九、备份策略 ## 1. 系统备份 ### A. 配置文件备份 - /etc 目录 - /home 目录 - 应用配置 ### B. 备份周期 - 增量备份:每日 - 全量备份:每周 - 异地备份:每月 ## 2. 数据备份 ### A. 数据库备份 - MySQL:mysqldump 每日 - Redis:RDB + AOF ### B. 容器数据备份 - Volume 数据定期备份 - 配置文件版本控制 *** ## 参考资料 1. Ubuntu 22.04 LTS 官方文档 2. Kubernetes 官方文档 3. Docker 官方文档 最后修改:2026 年 04 月 02 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏