Linux NFS (hálózati fájlrendszer) kiszolgáló manuális létrehozása és használata az Azure Kubernetes Service-szel (AKS)
Az adatok tárolók közötti megosztása gyakran szükséges összetevője a tárolóalapú szolgáltatásoknak és alkalmazásoknak. Általában különböző podokkal rendelkezik, amelyeknek hozzáféréssel kell rendelkezniük egy külső állandó kötet ugyanazon információihoz. Bár az Azure Files egy lehetőség, az NFS-kiszolgáló létrehozása egy Azure-beli virtuális gépen az állandó megosztott tárterület egy másik formája.
Ez a cikk bemutatja, hogyan hozhat létre NFS-kiszolgálót egy Azure Ubuntu virtuális gépen, és hogyan állíthatja be az AKS-fürtöt állandó kötetként a megosztott fájlrendszerhez való hozzáféréssel.
Mielőtt elkezdené
Ez a cikk feltételezi, hogy a következőkkel támogatja ezt a konfigurációt:
- Egy meglévő AKS-fürt. Ha nincs AKS-fürtje, az AKS nagyvállalati szintű implementációjának megtervezésével kapcsolatos útmutatásért tekintse meg az AKS-terv megtervezését ismertető témakört.
- Az AKS-fürtnek ugyanazon vagy társviszonyban lévő Azure-beli virtuális hálózaton (VNeten) kell lennie, mint az NFS-kiszolgáló. A fürtöt egy meglévő virtuális hálózaton kell létrehozni, amely ugyanaz lehet, mint az NFS-kiszolgáló virtuális gépe. A meglévő virtuális hálózatokkal való konfigurálás lépéseit a következő cikkek ismertetik: AKS-fürt létrehozása a meglévő virtuális hálózaton és virtuális hálózatok közötti társviszony-létesítés.
- Egy 18.04-es vagy újabb verziót futtató Azure Ubuntu Linux rendszerű virtuális gép . Linux rendszerű virtuális gépek Azure-beli üzembe helyezéséről lásd : Linux rendszerű virtuális gépek létrehozása és kezelése.
Ha először telepíti az AKS-fürtöt, az Azure automatikusan feltölti a virtuális hálózati beállításokat az Azure Ubuntu virtuális gép üzembe helyezésekor, és társítja az Ubuntu virtuális gépet ugyanazon a virtuális hálózaton. Ha inkább társhálózatokkal szeretne dolgozni, tekintse meg a fenti dokumentációt.
Az NFS-kiszolgáló üzembe helyezése virtuális gépen
Ha NFS-kiszolgálót szeretne üzembe helyezni az Azure Ubuntu virtuális gépen, másolja a következő Bash-szkriptet, és mentse a helyi gépre. Cserélje le a AKS_SUBNET változó értékét az AKS-fürt megfelelő értékére, ellenkező esetben az alapértelmezett érték megnyitja az NFS-kiszolgálót az összes porton és kapcsolaton. Ebben a cikkben a fájl neve
nfs-server-setup.sh
.#!/bin/bash # This script should be executed on Linux Ubuntu Virtual Machine EXPORT_DIRECTORY=${1:-/export/data} DATA_DIRECTORY=${2:-/data} AKS_SUBNET=${3:-*} echo "Updating packages" apt-get -y update echo "Installing NFS kernel server" apt-get -y install nfs-kernel-server echo "Making data directory ${DATA_DIRECTORY}" mkdir -p ${DATA_DIRECTORY} echo "Making new directory to be exported and linked to data directory: ${EXPORT_DIRECTORY}" mkdir -p ${EXPORT_DIRECTORY} echo "Mount binding ${DATA_DIRECTORY} to ${EXPORT_DIRECTORY}" mount --bind ${DATA_DIRECTORY} ${EXPORT_DIRECTORY} echo "Giving 777 permissions to ${EXPORT_DIRECTORY} directory" chmod 777 ${EXPORT_DIRECTORY} parentdir="$(dirname "$EXPORT_DIRECTORY")" echo "Giving 777 permissions to parent: ${parentdir} directory" chmod 777 $parentdir echo "Appending bound directories into fstab" echo "${DATA_DIRECTORY} ${EXPORT_DIRECTORY} none bind 0 0" >> /etc/fstab echo "Appending localhost and Kubernetes subnet address ${AKS_SUBNET} to exports configuration file" echo "/export ${AKS_SUBNET}(rw,async,insecure,fsid=0,crossmnt,no_subtree_check)" >> /etc/exports echo "/export localhost(rw,async,insecure,fsid=0,crossmnt,no_subtree_check)" >> /etc/exports nohup service nfs-kernel-server restart
A szkript elindítja az NFS-kiszolgáló újraindítását, majd folytathatja a csatlakozást az NFS-kiszolgálóhoz az AKS-fürtből.
A Linux rendszerű virtuális gép létrehozása után másolja az előző lépésben létrehozott fájlt a helyi gépről a virtuális gépre az alábbi paranccsal:
scp /path/to/nfs-server-setup.sh username@vm-ip-address:/home/{username}
A fájl átmásolása után nyisson meg egy biztonságos rendszerhéj-kapcsolatot (SSH) a virtuális géphez, és hajtsa végre a következő parancsot:
sudo ./nfs-server-setup.sh
Ha a végrehajtás engedély megtagadási hiba miatt meghiúsul, állítsa be a végrehajtási engedélyt mindenki számára az alábbi parancs futtatásával:
chmod +x ~/nfs-server-setup.sh
AKS-fürt Csatlakozás NFS-kiszolgálóra
Az NFS-kiszolgálóhoz az AKS-fürtből csatlakozhat egy állandó kötet és egy állandó kötet jogcím kiosztásával, amely meghatározza a kötet elérését. Csatlakozás a két erőforrást ugyanabban a vagy társhálózatban lévő virtuális hálózatokban kell használni. Ha tudni szeretné, hogyan állíthatja be a fürtöt ugyanabban a virtuális hálózatban, olvassa el a következő témakört: AKS-fürt létrehozása a meglévő virtuális hálózaton.
Ha mindkét erőforrás ugyanazon a virtuális vagy társhálózaton található, állíts ki egy állandó kötetet és egy állandó mennyiségi jogcímet az AKS-fürtben. A tárolók ezután csatlakoztathatják az NFS-meghajtót a helyi címtárukhoz.
Hozzon létre egy pv-azurefilesnfs.yaml nevű YAML-jegyzékfájlt egy PersistentVolume használatával. Példa:
apiVersion: v1 kind: PersistentVolume metadata: name: NFS_NAME labels: type: nfs spec: capacity: storage: 1Gi accessModes: - ReadWriteMany nfs: server: NFS_INTERNAL_IP path: NFS_EXPORT_FILE_PATH
Cserélje le a NFS_INTERNAL_IP, NFS_NAME és NFS_EXPORT_FILE_PATH értékeit az NFS-kiszolgáló tényleges beállításaira.
Hozzon létre egy PVC-azurefilesnfs.yaml nevű YAML-jegyzékfájlt a PersistentVolume-t használó PersistentVolumeClaim használatával. Példa:
Fontos
A storageClassName értéknek üres sztringnek kell maradnia, vagy a jogcím nem fog működni.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: NFS_NAME spec: accessModes: - ReadWriteMany storageClassName: "" resources: requests: storage: 1Gi selector: matchLabels: type: nfs
Cserélje le a NFS_NAME értékét az NFS-kiszolgáló tényleges beállítására.
Hibaelhárítás
Ha nem tud csatlakozni a kiszolgálóhoz az AKS-fürtből, a probléma lehet az exportált könyvtár vagy annak szülője, és nem rendelkezik megfelelő engedélyekkel az NFS-kiszolgáló virtuális gépének eléréséhez.
Ellenőrizze, hogy az exportálási címtár és a szülőkönyvtár 777 engedélyhez van-e adva.
Az engedélyek ellenőrzéséhez futtassa a következő parancsot, és a címtáraknak "drwxrwxrwx" engedélyekkel kell rendelkezniük:
ls -l
Következő lépések
- A kapcsolódó ajánlott eljárásokért tekintse meg az ajánlott tárolási és biztonsági mentési eljárásokat az AKS-ben.
- Az NFS-kiszolgáló beállításával vagy a hibakeresési problémák elhárításával kapcsolatos további információkért tekintse meg az Ubuntu közösségi NFS-oktatóanyag alábbi oktatóanyagát