k8s 进阶实战笔记 | NFS 动态存储类的部署与使用

news/发布时间2024/6/15 23:12:51

文章目录

  • NFS 动态存储类的部署与使用
    • 演示环境说明
    • NFS subdir external provisioner
    • 准备 NFS 服务器
    • 手动部署 NFS Subdir External Provisioner
    • 部署 StorageClass
    • 验证使用
    • 更多信息

NFS 动态存储类的部署与使用

演示环境说明

演示环境信息:单机K3s 1.28.2

操作系统:CentOS Linux release 7.8.2003 (Core)

虚拟机基础信息:4C4G

NFS服务器:同1台服务器

NFS subdir external provisioner

  • k8s 不包含内部 NFS 驱动,所以需要安装外部驱动为 NFS 创建 StorageClass
  • NFS subdir external provisioner 是一种自动置备程序,它使用现有且已配置的 NFS 服务器来支持通过持久卷声明动态置备 k8s 持久卷

准备 NFS 服务器

服务端

## 安装服务端程序
yum -y install nfs-utils  rpcbind
## 配置NFS
mkdir /opt/data
## (vi /etc/exports)
/opt/data *(rw,no_root_squash,no_all_squash,anonuid=0,anongid=0,sync)
##启动服务
systemctl enable rpcbind --now
systemctl enable nfs --now

客户端

##安装客户端程序
rpm -qa |grep nfs-utils
yum -y install nfs-utils

在这里插入图片描述

手动部署 NFS Subdir External Provisioner

克隆项目

git clone https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner.git

在这里插入图片描述

修改 YAML 文件

### 进入deploy目录
cd nfs-subdir-external-provisioner/deploy### 生效 rbac
kubectl apply -f rbac.yaml###修改部署文件deployment.yaml
#修改可拉取的镜像地址
sed -i 's#registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2#k8s.m.daocloud.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2#g' deployment.yaml#修改NFS服务器地址和共享路径(NFS_SERVER和NFS_PATH)
10.0.16.4
/opt/data### 部署驱动程序
kubectl apply -f deployment.yaml### 查看
kubectl get pod 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

部署 StorageClass

部署文件位置:nfs-subdir-external-provisioner/deploy/class.yaml

### class.yaml 示例文件
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: nfs-client
provisioner: k8s-sigs.io/nfs-subdir-external-provisioner
parameters:pathPattern: "${.PVC.namespace}/${.PVC.annotations.nfs.io/storage-path}"onDelete: delete### 部署
kubectl apply -f class.yaml

在这里插入图片描述

验证使用

验证文件

在这里插入图片描述

kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: test-claim
spec:storageClassName: nfs-client	### 指明动态存储类名称(上面的class.yaml的metadata字段)accessModes:- ReadWriteManyresources:requests:storage: 1Mi### 应用
kubectl apply -f test-claim.yaml

在这里插入图片描述

kind: Pod
apiVersion: v1
metadata:name: test-pod
spec:containers:- name: test-podimage: busybox:stablecommand:- "/bin/sh"args:- "-c"- "touch /mnt/SUCCESS && exit 0 || exit 1"volumeMounts:			### 声明需要挂载出去的容器路径- name: nfs-pvcmountPath: "/mnt"restartPolicy: "Never"volumes:- name: nfs-pvcpersistentVolumeClaim:claimName: test-claim### 生效
kubectl apply -f test-pod.yaml

查看效果

is ok

在这里插入图片描述

更多信息

其他部署方式参考:GitHub - kubernetes-sigs/nfs-subdir-external-provisioner: Dynamic sub-dir volume provisioner on a remote NFS server.

k8s设置默认存储类:改变默认 StorageClass | Kubernetes

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

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

相关文章

Oracle ADG相关介绍

文章目录 一、ADG原理1、ADG介绍2、ADG搭建流程 二、ADG相关参数三、增量修复 一、ADG原理 1、ADG介绍 Oracle ADG(Advanced Data Guard)是Oracle数据库的一项高可用和灾难恢复技术,它通过将数据保持在物理备库中来提供数据保护和容灾能力。…

Android 水波纹扩散效果实现

人生只是一种体验,不必用来演绎完美。 效果图 View源码 package com.android.circlescalebar.view;import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.animation.…

Element UI中 el-tree 组件 css 实现横向溢出滚动实现

限制 el-tree 的父容器宽度为 100px 之后 el-tree 组件内数据溢出后隐藏,不出现滚动条 、overflow 为 auto 也无效 overflow 无效是因为 el-tree 宽度 也是 100px 本来也就没有溢出 给 el-tree 添加样式 width: fit-content; min-width: -webkit-fill-available; …

【SRE系列之Jenkins的使用】--实现ssh和http克隆

1、Jenkins的概念 1.1Jenkins的介绍 Jenkins是一个独立的开源软件项目,是基于Java开发的一种CI(Continuous integration,持续集成) &CD (Continuous Delivery,持续交付)工具,用于监控持续重复的工作&a…

(C语言)Sleep函数,system函数,数组练习,详解与运用

一维数组详解:http://t.csdnimg.cn/zahZF 二维数组详解:http://t.csdnimg.cn/h2mLe 我们看过可一维数组与二维数组,现在我们来进行简单的练习。 题目:编写代码,演⽰多个字符从两端移动,向中间汇聚 1. …

vue基础

目录 1.主要内容1)父组件2)子组件 2.效果图 1.主要内容 1.模板插值{{}} 2.v-model变量双向绑定 3.v-show:DOM元素的显示与隐藏 4.v-if:DOM元素的渲染与不渲染 5.v-for循环、class样式绑定、style绑定、click绑定 6.子父组件传参props、$emit、$refs&…

redis-RedisTemplate.opsForGeo 的geo地理位置及实现附近的人的功能

redis内部使用的是 zset 数据结构存储,如下 import cn.huawei.VideoApplication; import cn.huawei.domain.Jingqu; import cn.huawei.service.JingquService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired…

(2024,时空 trasnformer,时空视频分词器,自回归动力学模型,潜在行动模型)Genie:生成式交互环境

Genie: Generative Interactive Environments 公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 2. 方法 2.1. 模型组件 2.2. 推理:可控行动视频生成 3. 实验 0. …

P9903 [COCI 2023/2024 #1] Sudoku【数独】

文章目录 题意输入格式&输入样例1.样例输入12.样例输出13.样例输入24.样例输出25.样例输入36.样例输出3 具体code & 解释1.如何统计每个数的个数2.如何遍历九宫格 code↓ 题意 给出一个 13 13 13\times 13 1313的矩阵(实际是 9 9 9\times 9 99的,但是旁边…

面试数据库篇(mysql)- 03MYSQL支持的存储引擎有哪些, 有什么区别

存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式 。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。 MySQL体系结构 连接层服务层引擎层存储层 存储引擎特点 InnoDB MYSQL支持的存储引擎有哪些, 有什么区别 ? my…

我怎失迪文岑佐:我并不想离开勇士 那里的处境非常好

nba直播吧 2024年02月29日讯 明日尼克斯将在主场迎战勇士,尼克斯球员迪文岑佐、勇士旧将迪文岑佐接受了媒体TA的采访。 谈及去年夏天离开勇士&加盟尼克斯的决定,迪文岑佐坦言:“我当时并不想离开勇士,那里的处境非常好。” …

洛谷 P2249 【深基13.例1】查找

思路:这是最典型和基础的二分查找题,因为符合单调性和有界性,如果直接暴力查找的话,会超时,只需要用一下二分即可 左边界为:0(因为编号最小为1) 右边界为:n1&#xff0…

使用drawio画数据库实体关系图

在drawio中使用数据库实体关系图 drawio是一款强大的图表绘制软件,支持在线云端版本以及windows, macOS, linux安装版。 如果想在线直接使用,则直接输入网址drawon.cn或者使用drawon(桌案), drawon.cn内部完整的集成了drawio的所有功能,并实现…

React PureComponent 和 React.memo()区别

1 注意 ● PureComponent和memo仅作为性能优化的方式存在 ● 不要依赖它来阻止渲染,会产生BUG ● PureComponnet 和memo 都是通过对 props 值的浅比较来决定该组件是否需要更新的。 2 PureComponent 和React.memo() 区别 PureComponent 和React.memo()都是React优化…

神经网络系列---卷积

文章目录 卷积神经网络卷积转置卷积 卷积核和反卷积的三种实现方式卷积的次数计算 卷积神经网络 在神经网络的卷积层中,向下取整(Floor)是一种常用的策略,特别是在处理输出尺寸不是整数的情况时。当你计算出卷积层输出的尺寸&…

一键生成请求方法的工具 —— OpenAPI Typescript Codegen

文章目录 用法自定义请求参数的方法1)使用代码生成器提供的全局参数修改对象2)直接定义 axios 请求库的全局参数,比如:全局请求响应拦截器 报错解决 用法 首先下载axios npm install axios官网:https://github.com/f…

Jenkins自动化部署构建说明(8)

Jenkins构建说明 - 20211012 什么是Jenkins? Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。它是一个自动化的周期性的集成测试过程,从检出代…

kali安装ARL灯塔(docker)

1、root身份进入容器 ┌──(root㉿Kali)-[~/桌面] └─# su root ┌──(root㉿Kali)-[~/桌面] └─# docker 2、先更新再克隆 ┌──(root㉿Kali)-[~/桌面] └─# apt-get update …

js截取图片地址后面的参数和在路径中截取文件名或后缀名

文章目录 前言截取地址 ?后面的参数在路径中截取文件名或后缀名总结 前言 在处理网页上的图片资源或者其他类型的文件资源时,你可能会遇到需要使用这些技巧的情况。以下是一些具体的使用场景: 动态修改图片参数:如果你有一个图片U…

【Mars3d】进行水平测量measure.area({的时候,会被模型遮挡的处理方法

问题: 1.thing/analysis/measure 水平面积 measure.area({ 在模型上测量的时候会被遮挡 2. 通过 addHeight:10000,增加高度也不可以实现这种被遮挡的效果,都增加到10000了,还是会被遮挡 export function measureArea() { measure.area({ s…
推荐文章