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相关推荐
- azure linux 配置端口,快速入门 - 在 Azure 门户中创建 Linux VM - Azure Virtual Machines | Microsoft Docs...
您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 快速入门:在 Azur ...
- 教你怎么安装linux电脑系统,包括Ubuntu Linux和centOS
Linux系统是类Unix操作系统,具有稳定的系统性能,是开源软件. 有很多Linux发行版,其中一些是完全免费的. 许多公司网络将Linux用作网络服务器和防火墙,以实现网络安全和节省成本.现在向大 ...
- Ubuntu Linux 3D桌面完全教程 Ubuntu Linux 3D桌面完全教程
注意:本文中envy等安装步骤已经不再使用 [5月20日更新] Ubuntu Linux 3D桌面完全教程,显卡驱动安装方法,compiz特效介绍,常见问题解答. 本教程的前身是一善鱼 编写并发布在U ...
- linux 目录下创建子目录,在 Linux 下用 mkdir 命令来创建目录和子目录
了解了用 ls 命令在目录中列出条目后,现在我们要学习在 Linux 系统下创建目录.在 Linux 下,我们可以使用 mkdir 命令.Mkdir 是"make directory&quo ...
- 怎么在linux上装java,如何在Ubuntu Linux上安装Java
介绍 如何在Ubuntu Linux上安装Java?尽管对于一个经验丰富的Linux系统管理员来说,这个主题是一个很容易理解的话题,但是对于初学者而言,在我需要什么版本的Java,如何安装它或如何在多 ...
- linux下添加apt-get命令,Ubuntu Linux系统下apt-get命令整理
Ubuntu Linux系统下apt-get命令整理 首次接触ubuntu,很多命令都需要sudo.尤其是安装命令都需要apt . 这里做个apt命令的简单汇总,方便一来了解下加深印象,二来以便以后使 ...
- linux系统atom安装教程,Ubuntu/Linux Mint上安装Atom文本编辑器
Atom是一款由Github开发的开源文本编辑器,虽然目前该软件依然在Beta阶段,但我们依然可以在你的Ubuntu/Linux Mint上使用它. 据Atom官方博客介绍,与Atom类似的编辑器Su ...
- mint linux更新内核,如何在Ubuntu/Linux Mint中安装最新Linux 5.2.5内核
原标题:如何在Ubuntu/Linux Mint中安装最新Linux 5.2.5内核 Linux 5.2的Ubuntu主线内核包最终可以在32位和64位操作系统中下载和安装. 由于构建失败,Linux ...
- 在linux系统中创建文件夹,Linux系统中创建文件夹命令详解
Linux系统中创建一个新的文件夹我们可以使用命令来执行,下面由学习啦小编为大家整理了Linux系统中创建文件夹命令详解,希望对大家有帮助! Linux系统中创建文件夹命令详解 一.mkdir命令使用 ...
最新文章
- string字符串转换为array(互换)
- 图解Oracle备份方式分类
- h5-16-SVG 与 HTML5 的 canvas 各自特点
- 上周热点回顾(7.10-7.16)
- 支付宝程序员眼中的极致代码和卓越程序员是什么样的?
- 在CentOS/RHEL 7.X安装 EPEL repo 的方法 1
- 从 CentOS 5.5 中精简出属于自己的专属Linux(二)
- CCS软件安装教程(超级详细)
- 《君生我未生,我生君已老》详解
- status(c语言)
- ubuntu 通过ssh链接ARM板 及 IMX6使用调试串口通信
- 计算机网络教程(第四版)
- 浪潮之巅-读书笔记二
- 上海公积金贷款买房攻略详细解读
- 3款别出心裁的电脑软件,个个精选,让你眼前一亮
- 剑指OFFER思路总结与代码分享——树篇(Java实现)
- http://www.cvvision.cn/2888.html
- redis基础命令和数据操作命令学习笔记
- 初识中央处理器CPU
- 阿里巴巴 Excel工具easyExcel
热门文章
- 异步编程到底在说啥?
- 微信“支付”页全国多地上线“出行服务”,已覆盖108城
- Hadoop精华问答 | NameNode的工作特点
- 这是一则计算机视觉顶级会议CVPR与腾讯的爆闻,啥?
- 统计了50万人的身高数据才发现:大家都爱虚报身高
- ubuntu matlab_有没有人和我一起整理Python的matlab代替
- mysql 主从 跳过_mysql主从同步如何跳过错误
- Flowable 数据库表结构 ACT_RU_VARIABLE
- 通过接口操作MyBatis及数据库配置文件
- zookeeper集群部署 精简版本