本文件說明如何在 Ubuntu 環境下部署 NFS以及如何做 HA
安裝 nfs-kernel-server
sudo apt update
sudo apt install -y nfs-kernel-server
systemctl status nfs-server
建立共享目錄並給權限
sudo mkdir -p /srv/nfs/dags
sudo mkdir -p /srv/nfs/logs
sudo chown -R nobody:nogroup /srv/nfs
sudo chmod -R 0775 /srv/nfs
sudo mkdir -p /srv/nfs/airflow
sudo chown nobody:nogroup /srv/nfs/airflow
sudo chmod 777 /srv/nfs/airflow
設定 exports
sudo vi /etc/exports
/etc/exports:
/srv/nfs/dags 10.10.0.0/16(rw,sync,no_subtree_check,no_root_squash)
/srv/nfs/logs 10.10.0.0/16(rw,sync,no_subtree_check,no_root_squash)
/srv/nfs/airflow 10.10.0.0/16(rw,sync,no_subtree_check,no_root_squash)
套用設定
sudo exportfs -ra
防火牆設定(如果有)
sudo ufw allow from 10.10.0.0/16 to any port 2049
sudo ufw allow 111
安裝 nfs-common (以便在 Worker 節點上進行除錯或掛載測試)
sudo apt install -y nfs-common
注意: DAGs 與 Logs 的 PV/PVC 設定已整合至 Airflow 部署指南 中,此處不再重複。
NFS 本身不提供資料層 HA, 最簡單方式是透過「VIP 作為存取入口」與「資料同步機制」實現可維運的高可用。
切換server ip為先前設置的VIP
dags 添加同步機制
以部署時rsync為範例:
for host in 10.10.0.85 10.10.0.87 10.10.0.89; do
rsync -az --delete /srv/nfs/dags/ ${host}:/srv/nfs/dags/
done