K8S入门到精通05-基于NFS的集群文件共享

NFS简介

  • NFS,是由SUN公司研制的文件传输协议,全称Network File System
  • NFS主要是采用远程过程调用RPC机制实现文件传输
  • 安装命令yum install -y nfs-utils rpcbind

集群文件共享

如何解决集群中文件的统一修改、统一使用?共享
在这里插入图片描述

通过在宿主机上安装NFS,将文件共享给多个容器

NFS使用示例

安装NFS服务

执行如下命令,在宿主机上安装NFS,这里我们选择Master节点

yum install -y nfs-utils rpcbind

执行如下命令,配置并启动文件共享

# 创建共享目录
mkdir -p /datda/www-data
# 设置NFS共享文件
echo "/data/www-data 192.168.0.31/24(rw,sync)" > /etc/exports
# 启动nfs服务
systemctl start nfs
# 启动rpcbind服务
systemctl start rpcbind
# 设置服务开机自启动
systemctl enable nfs
systemctl enable rpcbind
# 查看文件共享情况
exportfs
# /data/www-data	192.168.0.31/24

客户端使用NFS服务

在Node节点上执行如下命令,安装NFS客户端

yum install -y nfs-utils

挂载共享文件

# 创建目录
mkdir -p /data/www-data
# 挂载目录
mount 192.168.0.31:/data/www-data /data/www-data

设置开机启动

systemctl enable nfs

辅助命令,查看nfs共享了哪些目录showmount -e 192.168.0.31

容器中使用nfs共享文件

延用之前的Tomcat集群,来加载nfs共享文件,变更该Tomcat集群可以通过kube apply命令修改集群,或者使用kube delete删除集群相关资源,再创建集群。这里我们使用第二种方法。

清理Tomcat集群
# 查看deployment列表
kubectl get deployment
# 删除名为tomcat-deploy的deployment
kubectl delete deployment tomcat-deploy
# 查看service列表
kubectl get service
# 删除名为tomcat-deploy的service
kubectl delete service tomcat-deploy
修改delployment

修改tomcat-deploy.yml内容如下

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: tomcat-deploy
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: tomcat-cluster
    spec:
      volumes: # 创建volume数据卷
      - name: web-app # 数据卷名称
        hostPath: # 数据卷在宿主机上的路径
          path: /data/www-data
      containers:
      - name: tomcat-cluster
        image: tomcat:latest
        ports:
        - containerPort: 8080
        volumeMounts: # 绑定数据卷
        - name: web-app # 匹配之前创建的数据卷名称
          mountPath: /usr/local/tomcat/webapps # 指定容器中的挂载目录

创建deployment

kubectl create -f tomcat-deploy.yml

使用命令查看生效情况

# 查看deployment状态
kubectl get deployment
# 查看pod状态
kubectl get pod
# 进入容器,查看文件是否挂载成功
kubectl exec -it tomcat-deploy-6cc6d68877-9wkwm /bin/bash
# 在容器内查看文件
ls /usr/local/tomcat/webapps
# 在nfs宿主机的/data/www-data目录新增、修改文件,观察内容是否同步

至此就完成了基于NFS的K8S集群文件共享设置。

配置客户端的NFS自动挂载

使用mount命令挂载,重启系统后将失效,需配置/etc/fstab

# /etc/fstab中添加如下配置
192.168.0.31:/data/www-data	/data/www-data	nfs	defaults	0 	0

版权说明

本文章内容为马士兵教育《架构师高级技能kubernetes入门到精通》课程的学习笔记

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值