第1章:基础软件安装与配置

兄弟们,咱们正式开始集群部署的第一道工序。说实话,这一步看着基础,但我在项目里见过太多人在这上面栽跟头。你想想看,集群里几十台机器,时间对不上、域名解析不了、包装不上……那后面所有工作都得停摆。所以这一章,咱们把地基打牢。

1.1 NTP时间同步——集群的“心跳”

集群里所有机器的时间必须一致。这不是强迫症,是刚需。日志分析、任务调度、分布式锁……哪个都依赖准确的时间戳。两台机器差个几秒,你排查问题的时候会疯掉的。

安装与配置

# CentOS/RHEL 7+
yum install -y ntp
systemctl enable ntpd
systemctl start ntpd

# Ubuntu/Debian
apt install -y ntp
systemctl enable ntp
systemctl start ntp

我个人习惯用国内的时间服务器,速度快、稳定。比如阿里云的 ntp.aliyun.com,或者腾讯云的 ntp.tencent.com。配置在 /etc/ntp.conf 里改一下就行:

server ntp.aliyun.com iburst
server ntp.tencent.com iburst
server 0.pool.ntp.org iburst
小技巧: 如果集群在内网,没有外网访问权限,那就挑一台机器当NTP服务器,其他机器都指向它。我在一个金融项目里就这么干的,稳得很。

验证同步状态

ntpq -p
# 或者
timedatectl status

看到 * 号标记的服务器,说明已经同步上了。如果显示 unsynchronised,别慌,等个一两分钟再查。NTP 同步不是瞬间完成的,它有个渐进过程。

注意: 我曾经遇到过一个坑——虚拟机重启后时间又回去了。原因是宿主机的时间没同步。所以,物理机和虚拟机都要配NTP,一个都不能少。

1.2 DNS域名解析——集群的“通讯录”

集群里机器多了,你总不能靠IP地址去记吧?今天这台挂了,明天那台扩容了,IP一变,所有配置都得改。用域名就省心多了。

方案一:使用 /etc/hosts(简单粗暴)

小规模集群(10台以内),我建议直接用 hosts 文件。改起来快,没有单点故障。

cat >> /etc/hosts << EOF
192.168.1.10   node1.cluster.local   node1
192.168.1.11   node2.cluster.local   node2
192.168.1.12   node3.cluster.local   node3
EOF

方案二:搭建内部DNS服务器(推荐)

集群规模大了,hosts 文件就不好维护了。这时候得用 BIND 或者 dnsmasq。我个人偏爱 dnsmasq,轻量、配置简单。

# 安装 dnsmasq
yum install -y dnsmasq
# 配置
echo "server=8.8.8.8" >> /etc/dnsmasq.conf
echo "server=114.114.114.114" >> /etc/dnsmasq.conf
echo "address=/cluster.local/192.168.1.10" >> /etc/dnsmasq.conf
systemctl enable dnsmasq
systemctl start dnsmasq

然后所有机器的 /etc/resolv.conf 里,把 nameserver 指向这台 DNS 服务器就行。

核心要点: 域名解析的优先级是:本地 hosts > DNS 缓存 > DNS 服务器。排查问题时,按这个顺序查,能省不少时间。

1.3 YUM/APT源配置——软件安装的“粮仓”

没有源,你连个 vim 都装不上。国内用官方源那个速度……嗯,你懂的。所以第一步,换源。

CentOS 换阿里云源

# 备份原源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
# 下载阿里云源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清理缓存
yum clean all
yum makecache

Ubuntu 换清华源

# 备份
cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 替换
sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
# 更新
apt update
经验之谈: 我建议在集群里搭一个本地源镜像。把常用的包都缓存到一台机器上,其他机器从内网拉。这样既快又省带宽,特别是批量部署的时候,效果立竿见影。

1.4 EPEL仓库——扩展包的“宝库”

EPEL 是 Fedora 社区维护的扩展仓库,里面有很多官方源没有的包。比如 htop、iftop、jq 这些运维利器,都在 EPEL 里。

# CentOS 7
yum install -y epel-release
# CentOS 8/RHEL 8
dnf install -y epel-release
# 验证
yum repolist | grep epel

装完之后,你就可以愉快地 yum install htop iftop jq 了。嗯,这些工具后面都会用到,提前装上不亏。

1.5 常用工具安装——运维的“瑞士军刀”

这几个工具,我每台机器都会装。你可以理解为运维人员的“标配”。

工具 用途 安装命令
vim 文本编辑器,改配置必备 yum install -y vim
git 版本控制,拉取代码和配置 yum install -y git
curl HTTP请求,测试接口、下载文件 yum install -y curl
wget 文件下载,比curl更专注下载 yum install -y wget

一条命令全搞定:

yum install -y vim git curl wget
避坑指南: 我曾经在 CentOS 最小化安装的系统上,连 ifconfig 都没有。后来学乖了,装完系统第一件事就是装这些基础工具。别等到要用的时候才发现没有,那感觉……很酸爽。

本章知识体系

下面这张图,把本章的核心逻辑串起来了。你可以把它当作一个检查清单,每配完一台机器,对照着过一遍。

基础软件安装与配置 - 知识体系 集群基础环境 NTP 时间同步 DNS 域名解析 YUM/APT 源配置 常用工具安装 ntpd / chrony 配置 时间服务器选择 同步状态验证 /etc/hosts 配置 dnsmasq / BIND 搭建 resolv.conf 配置 国内镜像源替换 EPEL 扩展仓库 本地源镜像搭建 vim / git / curl / wget htop / iftop / jq 批量安装脚本 基础不牢,地动山摇 —— 每一步都值得认真对待

好了,这一章的内容就到这儿。这些基础软件装好、配好,你的集群就有了一个稳固的起点。后面咱们再聊更深入的东西。

想要更多资料,联系可可