1. 环境准备与架构设计
在CentOS 10上部署Kubernetes v1.35集群并配置NFS持久化存储,首先需要明确整体架构。我选择将Master节点同时作为NFS Server,主要基于以下考虑:
- 资源利用率:测试环境中Master节点通常有充足的计算和存储资源
- 网络拓扑简化:减少跨节点通信带来的复杂度
- 管理便捷性:存储管理可以与集群管理集中在同一节点
注意:生产环境建议将NFS Server独立部署,避免单点故障影响整个集群。
1.1 系统要求检查
在所有节点执行以下命令验证基础环境:
bash复制# 内核版本检查(需≥5.8)
uname -r
# 内存检查(Master≥4GB,Node≥2GB)
free -h
# 交换分区检查(K8s建议禁用)
swapon --show
如果发现交换分区启用,需要永久禁用:
bash复制sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
1.2 网络规划建议
本方案采用192.168.10.0/24网段,实际部署时需要根据企业网络环境调整:
- Master节点:192.168.10.152
- Node1:192.168.10.153
- Node2:192.168.10.154
关键网络连通性测试:
bash复制# 各节点互ping测试
ping -c 3 192.168.10.152
ping -c 3 192.168.10.153
ping -c 3 192.168.10.154
# 端口检查(NFS需要2049,111等端口)
sudo ss -tulnp | grep -E '2049|111'
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. NFS服务端深度配置
2.1 优化NFS服务端安装
在Master节点执行完整安装流程:
bash复制# 安装必要工具(比原方案更完整)
sudo yum install -y nfs-utils libnfsidmap
# 创建共享目录(带权限细分)
sudo mkdir -p /data/k8s_nfs
sudo chown nobody:nobody /data/k8s_nfs
sudo chmod 755 /data/k8s_nfs
# 高级exports配置
sudo tee /etc/exports <<EOF
/data/k8s_nfs 192.168.10.0/24(rw,sync,no_root_squash,no_subtree_check,fsid=0)
EOF
# 内核参数优化
sudo tee -a /etc/sysctl.conf <<EOF
fs.nfs.nfs_callback_tcpport = 20048
fs.nfs.nlm_tcpport = 30048
EOF
sudo sysctl -p
# 防火墙配置(如果启用)
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload
# 启动服务(注意顺序)
sudo systemctl enable --now rpcbind
sudo systemctl enable --now nfs-server
sudo systemctl enable --now nfs-idmapd
# 验证导出
sudo exportfs -v
2.2 NFS性能调优
在/etc/nfs.conf中添加以下优化参数:
ini复制[nfsd]
threads=16
tcp=y
vers4=y
vers3=n
[exportfs]
debug=info
[statd]
debug=info
重启服务生效:
bash复制sudo systemctl restart nfs-server
3. Kubernetes集群存储配置
3.1 PV/PVC高级配置
创建更完善的PV定义文件nfs-pv.yaml:
yaml复制apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-static-pv
labels:
storage-tier: standard
backup: daily
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWrit
