k8s之存储抽象nfs挂载
1、简介
存储抽象,即将存储单独用一个服务去联系起来。以前我们习惯把各个pod的卷挂载到其主机上的某个位置,但k8s的集群特点之一是master节点的随机分配,若有一个pod宕机,k8s会自动创建一个新的pod,当此时若新的pod没有分配到原先的节点上,则原理与本机挂载的文件将作废,导致数据丢失。为了解决这个问题,我们需要有一个统一的存储服务,来管理整个集群常见的存储框架有Glusterfs、NFS、CephFS等
2、环境准备
2.1、首先我们在k8s的3台服务器上都安装nfs服务,执行命令如下:
#所有机器安装 yum install -y nfs-utils
2.2、在主节点进行如下的操作:
echo "/nfs/data/ *(insecure,rw,sync,no_root_squash)" > /etc/exports
上面的命令表示我们准备在master节点暴露/nfs/data这个目录,而且是以非安全的方式,读写的权限暴露出去
在master节点创建要暴露的文件夹:
mkdir -p /nfs/data
启动rpc远程绑定同步目录服务,并且是开机自启:
systemctl enable rpcbind --now
下面启动nfs服务器并且使配置生效:
systemctl enable nfs-server --now #配置生效 exportfs -r
使用nfs命令检查暴露的目录:
2.3、 在从节点进行如下的操作,让从节点同步主节点的目录:
在两个从节点使用如下命令进行检查主节点提供了哪些目录可以同步的,是一个检查命令
# 下面的192.168.0.164是主节点的私有ip地址 showmount -e 192.168.0.164
下面在两个从节点创建挂载目录:
#执行以下命令挂载 nfs 服务器上的共享目录到本机路径 /nfs/data mkdir -p /nfs/data
注意:上面的/nfs/data目录不一定也要和主节点一样,可以是/nfs/test都行
下面使用挂载命令,同步主节点的目录:
mount -t nfs 192.168.0.164:/nfs/data /nfs/data
上面的192.168.0.164是主节点的私有ip地址
2.3、下面进行测试
首先我们在master节点的/nfs/data/目录下创建文件
上面可以发现主节点我们创建了test111文件,下面我们到从节点查看:
发现都是有的,同理我们在从节点,创建文件,也会同步到主节点中,这里就不测试了
3、下面使用创建一个Deployment来测试挂载nginx
3.1、Deployment的文件内容如下,文件名deploty-nginx.yaml
apiVersion: apps/v1 kind: Deployment metadata:labels:app: nginx-pv-demoname: nginx-pv-demo spec:replicas: 2 # 副本数有两个selector:matchLabels:app: nginx-pv-demotemplate:metadata:labels:app: nginx-pv-demospec:containers:- image: nginx # 拉取一个nginx镜像name: nginxvolumeMounts: # 定义要挂载的目录- name: htmlmountPath: /usr/share/nginx/htmlvolumes:- name: html #这个对应上面要挂载的目录的名称nfs: #使用nfs方式server: 192.168.0.164 #nfs主节点的ip地址path: /nfs/data/nginx-pv #挂载到主机的这个目录下
注意:我们需要在/nfs/data目录下提前将nginx-pv目录建好
执行文件:
kubectl apply -f deploty-nginx.yaml
下面我们首先在/nfs/data/nginx-pv目录下创建一个index.html
下面我们进入容器内查看:
可以发现已经同步进去了
k8s之存储抽象nfs挂载相关推荐
- K8S持久化存储:NFS+StorageClass实现动态供给
K8S持久化存储:NFS+StorageClass实现动态供给 一.简介:K8S中的持久化存储 二.部署nfs-provisioner 三.创建StorageClass 四.实验 实验1:部署depl ...
- k8s 安装nfs_K8S 指定 nfs 挂载
在项目中,pod 需要挂载外部的文件才可以使用 创建 nfs 挂载点,并把文件放进去 mkdir -p /data2/nfs/test_gc_wms/ vi /etc/exports /data2/n ...
- 05-【公司解决问题】公司解决问题5之k8s问题(部署单元挂载存储卷启动报错:nfs挂载错误wrong fs type, bad option, bad superblock)
一.报错原因: mount: wrong fs type, bad option, bad superblock on 10.202.35.160:/CHENYI_TEST_SIT, m ...
- K8S集群中Pod挂载Storageclass存储卷异常排查思路
K8S集群中Pod挂载Storageclass存储卷异常排查思路 故障描述: Jenkins是在K8S集群中部署的,Jenkins使用的各种资源以及全部创建了,但是Jenkins的Pod依旧无法启动, ...
- K8S使用持久化卷存储到NFS(NAS盘)
参考文章:K8S-v1.20中使用PVC持久卷 - 知乎 目录 1.概念: 1.1 基础概念 1.2 PV的配置 1.2.1 静态PV配置 1.2.2 动态PV配置 1.2.3 PVC与PV的绑定 1 ...
- 02.Kubernetes 和 KubeSphere 集群安装配置持久化存储(nfs)并通过StatefulSet动态为pod生成pv挂载
Kubernetes 和 KubeSphere 集群安装配置持久化存储(nfs)并通过StatefulSet动态为pod生成pv挂载 简介 1. 安装配置前置环境 1.1 安装nfs文件系统 1.1. ...
- 从零开始入门 K8s | Kubernetes 存储架构及插件使用
作者 | 阚俊宝 阿里巴巴高级技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 21 讲. 关注"阿里巴巴云原生"公众号,回复关键词**&quo ...
- Kubernetes K8S之存储PV-PVC详解
K8S之存储PV-PVC概述与说明,并详解常用PV-PVC示例 概述 与管理计算实例相比,管理存储是一个明显的问题.PersistentVolume子系统为用户和管理员提供了一个API,该API从如何 ...
- Kubernetes K8S之存储Volume详解
K8S之存储Volume概述与说明,并详解常用Volume示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2C ...
最新文章
- linux标准i/o,Linux 标准I/O笔记
- python 笔记:argparse
- abb变频器acs880说明书_常见品牌变频器修改功率方法大全
- php7扩展sphinx,php7进行安装sphinx简单记录
- leveldb java实例_EZDB首页、文档和下载 - LevelDB 的 Java 封装 - OSCHINA - 中文开源技术交流社区...
- 宝宝三岁多了,整天自言自语,乱说一通怎么办?
- linux面试题(填空部分)
- 编译lua5.3.2报错提示libreadline.so存在未定义的引用解决方法
- iOS 获取本地视频的缩略图
- 160.相交链表(力扣leetcode) 博主可答疑该问题
- 【数据可视化应用】绘制风玫瑰图(附Python代码)
- Jlink之J-Scope虚拟示波器
- 校园火灾项目Focuse-1
- uni-app 评论五星
- springboot的jsp应该放在哪_SpringBoot 在项目中使用JSP
- ubuntu 安装wifi驱动(Device-c822)
- ThreeJS-geoJson-开发记录
- 魔鬼R包—SNPassoc的下载与安装
- 6款强烈推荐的软件,让你办公更方便!!
- spss分析方法-二项检验