1.由于Kubernetes是分布式容器集群,pod多个副本可能位于不同的node上,这种情况下使用本地存储就无法实现pod直接的文件共享了。因此kubenetes引入网络存储卷使集群中计算机通过TCP/IP网络的方式共享资源,解决不同node节点上的pod多副本资源共享。

kubernetes支持网络存储卷有的很多种,其中包含GlusterFS、NFS、RDB等。

1.1 使用NFS实现网络存储卷

1.1.1 安装nfs服务端(master节点)

1.1.1.1 执行命令

apt install nfs-kernel-server

注意:如果安装报错

The following packages have unmet dependencies:
libevent-core-2.1-7a : Conflicts: libevent-core-2.1-7 but 2.1.12-stable-1build3 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

解决办法:

执行卸载: libevent-core-2.1-7a

sudo apt-get purge libevent-core-2.1-7a

1.1.1.2创建nfs共享目录并创建test.txt文件

mkdir -p /usr/local/data/nfs

cd /usr/local/data/nfs

vi test.txt

1.1.1.3配置nfs

vi /etc/exports

在文件最后一行新增

/usr/local/data/nfs * (async,insecure,no_root_squash,no_subtree_check,rw)

参数说明:

/usr/local/data/nfs:nfs共享的目录,这里设置需要和上一步一致
*:表示不限制访问网段,如果设置网段则表示限制网段,例如:192.168.100.0/24

rw:客户端对该共享目录具有读写权限
async:资料同步写入内存和硬盘
no_root_squash:root用户具有对根目录的完全管理访问权限
no_subtree_check:不检查父目录的权限

1.1.1.4重启服务

service nfs-kernel-server restart

1.1.1.5查看共享目录

showmount -e

showmount -e localhost

1.1.2安装nfs客户端(node节点)

1.1.2.1 执行命令

aptget install nfscommon

注意:如果报错如下

The following packages have unmet dependencies:
libevent-core-2.1-7a : Conflicts: libevent-core-2.1-7 but 2.1.12-stable-1build3 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

执行卸载: libevent-core-2.1-7a

sudo apt-get purge libevent-core-2.1-7a

1.1.2.2挂载

mount -t nfs 192.168.1.8:/usr/local/data/nfs /mnt/

说明:

mount -t nfs 服务端IP:共享目录 /mnt/

1.1.2.2 查看共享目录

cd /mnt/

ls