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 服务器设置时需要帮助,请查看以下深度教程:

后续步骤

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528200.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言中字符数字加'0',C语言中的NULL与转义字符'\0'以及数值0的关系

以下两种只是一个巧合,只不过地址值的数值为0而已。0本身只不过是一个可以显示的字符,与内存并没有直接关系。在0与ASCII表中关联NULL做了关联,这样使得输入转义字符\0,也可以将一个变量赋值为NULL。而\0对应的ASCII码又是第0号&a…

c语言程序设计杨辉三角过程,C语言编程 打印杨辉三角

在做这道题时首先要观察杨辉三角的规律11 11 2 11 3 3 11 4 3 4 1……可以看出1.每行的数字个数与所处行数相等2.除去每行第一个和最后一个数字唯一,其他数字都等于头顶元素加头顶前一个元素源代码:#include#includevoid PrintY(int length, int array[][100]){int …

c语言中的所有关键字,C语言中的32个关键字

C语言中的32个关键字数据类型关键字(12个)(1) char:声明字符型变量或函数(2) double:声明双精度变量或函数(3) enum:声明美剧类型(4) float:声明浮点型变量或函数(5) int:声明整型变量或函数(6) …

c语言手游常用代码,c语言源代码【操作流程】

很多小伙伴都遇到过c语言源代码的困惑吧,一些朋友看过网上零散的c语言源代码的处理方法,并没有完完全全明白c语言源代码是如何解决的,今天小编准备了简单的解决办法,只需要按照1:编写C源代码for_learning_compile.c2&a…

c语言中文件是如何存储的,急求如何将下列C语言程序数据存储到文件中?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼求如何改动才能将下列程序的存储输入或输出数据(或两者一起)到指定的文件(或运行时直接创立一个文件)如Arrangement中。#include int n0;int rest[7][7]; //全局声明,以供全局调用int main(){void perm(int list[],int ,int );int …

pdxp协议 C语言,集成CC控制逻辑,PD协议及MCU的Type-C应用方案

Type-C系列亮点介绍内包MCU、集成CC逻辑和DP协议支持Typec DP Alt mode 和单独的DP输入支持速率最高可达4-lane 5.4Gbps(HBR2)支持macbook2016版本,拔掉adapter不掉电● DP1.2/Type C转HDMI1.4,支持HDCP1.3,可扩展PD,USB3.0接口● 支持1/2/4 lane DP输…

Android打开谷歌应用,谷歌确认 Android 12 新增剪贴板访问提醒,将在 Beta 2 上线

IT之家 5 月 19 日消息 据外媒 xda-developers 报道,近年来,谷歌一直在打击 Android 系统中的剪贴板访问,并在发布 Android 10 时禁止后台应用读取剪贴板数据。在最新的 Android 12 中,谷歌引入了一项设置,每当应用访问…

Android nfc编译,【Android编译】各个模块编译方法

一、如何编译出vendor.img1. 首先找到产品对应BoardConfig.mk路径:LINUX/android/device/项目/产品/BoardConfig.mk2. 修改BoardConfig.mk设置下面代码中的ENABLE_VENDOR_IMAGE为true。#Enable split vendor imageENABLE_VENDOR_IMAGE : true#ENABLE_VENDOR_IMAGE :…

ubuntu下android源码编译环境,ubuntu12.04 64位上搭建android源码编译环境

1.首先替换源为163的源,默认源下载速度太慢sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup (备份下当前的源列表)sudo gedit /etc/apt/sources.list (打开Ubuntu 12.04源列表文件)deb http://mirrors.163.com/ubuntu/ precise main restricteddeb-src…

android访问百度新闻,百度新闻(com.baidu.news) - 8.3.6.0 - 应用 - 酷安

权限信息 android.permission.REQUEST_INSTALL_PACKAGES com.baidu.permission.SHARE 与蓝牙设备配对 使用设备上的帐户 添加或移除帐户 大致位置(基于网络) 精确位置(基于GPS和网络) 查看WLAN连接 查看网络连接 读取手机状态和身份 完全的网络访问权限 访问USB存储设备的文件系…

android7.0 蓝牙定位,BluetoothAdapter在Android6.0/7.0+以上startDiscovery不能发现蓝牙设备问题...

BluetoothAdapter在Android6.0以上startDiscovery不能发现蓝牙设备问题问题的重要原因之一是Android 6.0,Android 7.0的权限问题引起的。在Android 4.0上运行良好的蓝牙代码,在高版本运行异常。比如BluetoothAdapter的startDiscovery虽然启动了发现蓝牙任…

android xml defaulthandler解析,sax解析xml文件的DefaultHandler处理类

一千年的时光,我无数次掀起岁月的帷幔,只为和你,在某一个平静如水的日子相遇,然后相识,倾情一生,缱绻一世,好美的散文,好吧,我情愿把这个“你”当作android;)…

android中viewpager+fragment,Android开发之ViewPager+Fragment

使用步骤1、Activity的布局文件android:id"id/viewpager"android:layout_width"wrap_content"android:layout_height"wrap_content"android:layout_gravity"center" >2、加载要显示的Fragment,这里要注意,导…

19年的华为手机还能搭载鸿蒙吗,2019年华为手机出货或超2.15亿部 鸿蒙系统最快10月首秀...

科客点评:备用方案可以说是越多越好,这样的确能有效避免突发事件所带来的巨大风险。6月13日,知名分析师郭明錤给出了有关华为的最新预测报告,该预测报告主要对华为手机今年的出货量进行了预测。根据分析师郭明錤的报告显示&#x…

android 活动传递数据,如何在Android应用程序的“活动”之间传递数据?

我有一种情况,在通过登录页面登录后,每个activity上都会有一个退出button 。点击sign-out ,我将传递已登录用户的session id以便退出。 谁能指导我如何使session id可供所有activities ?这种情况的任何替代方法#1楼在活动之间传递…

面试时Android屏幕适配,Android—屏幕适配(面试技巧)

1.明白如下几个概念&#xff1a;屏幕尺寸&#xff0c;屏幕分辨率以及屏幕像素密度。<1>屏幕尺寸&#xff1a;指的是屏幕对角线的长度。以手机为例&#xff0c;常见的有4.2、5.0、5.5等。。<2>屏幕分辨率&#xff1a;指横纵向上的像素点数&#xff0c;单位是dpi&…

html5如何新建定义站点,HTML5技术教程:创建新作品_HTML5教程_创建作品_添加元素_课课家...

我们所熟知的HTM5软件是一款非常强大功能的软件&#xff0c;据我了解HTM5软件的特色也是非常有优势的。我们先来介绍一下它的优势&#xff1a;HTML5可以提供:①&#xff1a;提高可用性和改进用户的友好体验;②&#xff1a;有几个新的标签&#xff0c;这将有主(助?)开发人员定义…

android cordova 教程,cordova入门教程(一)

一、创建cordova项目执行命令&#xff1a;//全局安装cordova命令行工具npm install -g cordova//创建项目cordova create hello com.example.hello HelloWorldcd hello//执行这步之前需要安装android studio android sdk 并且配置好相应的环境变量,最好是最新版&#xff0c;不…

html 适配iphonex,有关HTML5页面在iPhoneX适配问题

这次给大家带来有关HTML5页面在iPhoneX适配问题&#xff0c;有关HTML5页面在iPhoneX适配的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。1. iPhoneX的介绍屏幕尺寸倍图其实就是像素尺寸和开发尺寸的倍率关系&#xff0c;但这只是外在的表现。倍图核心…

html5 css3考试f卷,HTML5 CSS3 JavaScriptWeb前端开发自测试卷3.docx

自测试卷3一、选择题1&#xff0e;编写网页的过程中&#xff0c;下面那种注释不正确( )。A&#xff0e;B&#xff0e;//注释C&#xff0e;D&#xff0e;/*注释*/2&#xff0e;和标签说法不正确的是( )。A&#xff0e;标签是块级元素B&#xff0e;标签是内联元素C&#xff0e;都…