日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux nfs spec,创建 NFS Ubuntu Linux 服务器卷 - Azure Kubernetes Service | Microsoft Docs

發布時間:2024/9/27 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux nfs spec,创建 NFS Ubuntu Linux 服务器卷 - Azure Kubernetes Service | Microsoft Docs 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

您現在訪問的是微軟AZURE全球版技術文檔網站,若需要訪問由世紀互聯運營的MICROSOFT AZURE中國區技術文檔網站,請訪問 https://docs.azure.cn.

在 Azure Kubernetes 服務 (AKS) 中手動創建和使用 NFS(網絡文件系統)Linux 服務器卷

4/25/2019

本文內容

基于容器的服務和應用程序往往需要在容器之間共享數據。 通常,會有各種 Pod 需要訪問外部持久性卷上的相同信息。

Azure 文件是一個選項,而在 Azure VM 上創建的 NFS 服務器是持久性共享存儲的另一種形式。

本文將介紹如何在 Ubuntu 虛擬機上創建 NFS 服務器。 另外,將介紹 AKS 容器如何訪問此共享文件系統。

準備階段

本文假設你已有一個 AKS 群集。 如果需要 AKS 群集,請參閱 AKS 快速入門使用 Azure CLI 或使用 Azure 門戶。

AKS 群集需要駐留在 NFS 服務器所在的相同或對等互連的虛擬網絡中。 該群集必須在現有的 VNET 中創建,該 VNET 可以是 VM 所在的同一 VNET。

本文還假設你已創建一個 Ubuntu Linux 虛擬機(例如 18.04 LTS)。 可以使用任意設置和大小,并可以通過 Azure 部署該虛擬機。 有關 Linux 快速入門,請參閱 Linux VM 管理。

如果你是首次部署 AKS 群集,在部署 Ubuntu 計算機時,Azure 會自動填充虛擬網絡字段,使該計算機駐留在同一 VNET 中。 但是,如果你想要改用對等互連網絡,請參閱上述文檔。

將 NFS 服務器部署到虛擬機

下面是用于在 Ubuntu 虛擬機中設置 NFS 服務器的腳本:

#!/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

服務器將會重啟(由于使用了該腳本),你可以將 NFS 服務器裝載到 AKS。

重要

請務必將 AKS_SUBNET 替換為群集中的適當子網;如果使用“*”,則會在 NFS 服務器中打開所有端口和連接。

創建 VM 后,將上述腳本復制到某個文件中。 然后可以使用以下命令,將該腳本從本地計算機或其所在的任意位置移到 VM 中:

scp /path/to/script_file username@vm-ip-address:/home/{username}

將腳本移到 VM 后,可以通過 SSH 連接到 VM,并通過以下命令執行該腳本:

sudo ./nfs-server-setup.sh

如果腳本由于權限被拒絕錯誤而執行失敗,請通過以下命令設置執行權限:

chmod +x ~/nfs-server-setup.sh

將 AKS 群集連接到 NFS 服務器

可以通過預配一個持久性卷,以及一個指定如何訪問該卷的持久性卷聲明,將 NFS 服務器連接到群集。

必須連接相同或對等互連的虛擬網絡中的兩個服務。 下面提供了有關在同一 VNET 中設置群集的說明:在現有 VNET 中創建 AKS 群集

將這些服務放入同一虛擬網絡(或對等互連的虛擬網絡)后,需要在 AKS 群集中預配持久性卷和持久性卷聲明。 然后,容器可將 NFS 驅動器裝載到其本地目錄。

下面是持久性卷的示例 Kubernetes 定義(此定義假設群集和 VM 位于同一 VNET 中):

apiVersion: v1

kind: PersistentVolume

metadata:

name:

labels:

type: nfs

spec:

capacity:

storage: 1Gi

accessModes:

- ReadWriteMany

nfs:

server:

path:

請將 NFS_INTERNAL_IP、NFS_NAME 和 NFS_EXPORT_FILE_PATH 替換為 NFS 服務器信息。

還需要一個持久性卷聲明文件。 下面是該文件的內容示例:

重要

"storageClassName" 需保留為空字符串,否則聲明不起作用。

apiVersion: v1

kind: PersistentVolumeClaim

metadata:

name:

spec:

accessModes:

- ReadWriteMany

storageClassName: ""

resources:

requests:

storage: 1Gi

selector:

matchLabels:

type: nfs

故障排除

如果無法從群集連接到服務器,問題的原因可能是導出的目錄或其父級沒有足夠的權限,因此無法訪問服務器。

請檢查導出的目錄及其父目錄是否具有 777 權限。

可運行以下命令來檢查權限,目錄應有 'drwxrwxrwx' 權限:

ls -l

詳細信息

如需完整的演練,或者在調試 NFS 服務器設置時需要幫助,請查看以下深度教程:

后續步驟

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的linux nfs spec,创建 NFS Ubuntu Linux 服务器卷 - Azure Kubernetes Service | Microsoft Docs的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。