k8s--storageClass自动创建PV

news2024/12/25 1:21:38

文章目录

  • 一、storageClass自动创建PV
    • 1.1 安装NFS
    • 1.2 创建nfs storageClass
    • 1.3 测试自动创建pv

一、storageClass自动创建PV

这里使用NFS实现

1.1 安装NFS

安装nfs-server: sh nfs_install.sh /mnt/data03 10.60.41.0/24

nfs_install.sh

#!/bin/bash

### How to install it? ###
### 安装nfs-server,需要两个参数:1、挂载点  2、允许访问nfs-server的网段 ###

### How to use it? ###
### Client节点`yum -y install nfs-utils rpcbind`,然后挂载nfs-server目录到本地 ###
### 如:echo "192.168.0.20:/mnt/data01  /mnt/data01  nfs  defaults  0 0" >> /etc/fstab && mount -a ###

mount_point=$1
subnet=$2

function nfs_server() {
  systemctl stop firewalld
  systemctl disable firewalld
  setenforce 0
  sed -i 's/^SELINUX.*/SELINUX\=disabled/' /etc/selinux/config
  yum -y install nfs-utils rpcbind
  mkdir -p $mount_point
  echo "$mount_point ${subnet}(rw,sync,no_root_squash)" >> /etc/exports
  systemctl start rpcbind && systemctl enable rpcbind
  systemctl restart nfs-server && systemctl enable nfs-server
  chown -R nfsnobody:nfsnobody $mount_point
}

function usage() {
echo "Require 2 argument: [mount_point] [subnet]
eg: sh $0 /mnt/data01 192.168.10.0/24"
}

declare -i arg_nums
arg_nums=$#
if [ $arg_nums -eq 2 ];then
  nfs_server
else
  usage
  exit 1
fi

1.2 创建nfs storageClass

创建: kubectl apply -f storageclass_deploy.yaml

storageclass_deploy.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: nfs-provisioner
  namespace: devops
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: nfs-provisioner-runner
rules:
- apiGroups: [""]
  resources: ["persistentvolumes"]
  verbs: ["get", "list", "watch", "create", "delete"]
- apiGroups: [""]
  resources: ["persistentvolumeclaims"]
  verbs: ["get", "list", "watch", "update"]
- apiGroups: ["storage.k8s.io"]
  resources: ["storageclasses"]
  verbs: ["get", "list", "watch"]
- apiGroups: [""]
  resources: ["events"]
  verbs: ["create", "update", "patch"]
- apiGroups: [""]
  resources: ["services", "endpoints"]
  verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: run-nfs-provisioner
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: nfs-provisioner-runner
subjects:
- kind: ServiceAccount
  name: nfs-provisioner
  namespace: devops
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: leader-locking-nfs-provisioner
  namespace: devops
rules:
- apiGroups: [""]
  resources: ["endpoints"]
  verbs: ["get", "list", "watch", "create", "update", "patch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: leader-locking-nfs-provisioner
  namespace: devops
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: leader-locking-nfs-provisioner
subjects:
- kind: ServiceAccount
  name: nfs-provisioner
  namespace: devops
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nfs-provisioner
spec:
  selector:
    matchLabels:
       app: nfs-provisioner
  replicas: 1
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: nfs-provisioner
    spec:
      serviceAccountName: nfs-provisioner
      containers:
        - name: nfs-provisioner
          image: docker.io/gmoney23/nfs-client-provisioner:latest
          volumeMounts:
            - name: nfs-client-root
              mountPath: /persistentvolumes
          env:
            - name: PROVISIONER_NAME
              value: example.com/nfs
            - name: NFS_SERVER
              value: 10.60.41.248
            - name: NFS_PATH
              value: /mnt/data03
      volumes:
        - name: nfs-client-root
          nfs:
            server: 10.60.41.248
            path: /mnt/data03
---
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: nfs
provisioner: example.com/nfs

1.3 测试自动创建pv

创建: kubectl apply -f test_auto_generate_pv.yaml
创建pvc之后发现pv自动创建了,在/mnt/data03/ 目录下

在这里插入图片描述

test_auto_generate_pv.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test-claim1
  namespace: devops
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: nfs
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      name: nginx-pod
  template:
    metadata:
      labels:
        name: nginx-pod
      namespace: myapp
    spec:
      containers:
      - name: nginx
        image: docker.io/library/nginx:latest
        imagePullPolicy: IfNotPresent
        volumeMounts:
        - name: nfs-pvc
          mountPath: /usr/share/nginx/html
      volumes:
      - name: nfs-pvc
        persistentVolumeClaim:
          claimName: test-claim1

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32cubeIDE 更改Repository folder

使用STM32CubeIDE时,会调用STM32CubeMX,但是这两个软件下载的更新包都放在C:/user/目录下面,而且文件很大,用不了多久就会把C盘填满,所以刚开始安装的时候就要把更新目录更换掉。具体更换方法如下: Window…

为您的视频编辑应用添加动力,美摄视频剪辑SDK

在当今的数字化时代,视频已经成为了最受欢迎的媒体形式之一。无论是社交媒体平台,还是在线教学站点,甚至是商业广告,都离不开视频的支持。而在这个领域,美摄视频剪辑SDK无疑是您的最佳选择。它不仅功能强大&#xff0c…

基于SSM的学生作业管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

sqlserver创建新用户并指定数据库

1、打开MSSM,安全性-->登录名-->右键-->新建登录名 2、按照下面6个步骤操作 3、用户映射页面,勾选对应数据库,数据库角色,增加db_owner的勾选 4、退出账号,使用新建的账号进行登录 5、对刚才授权的数据库&…

河北吉力宝智能科技鞋:引领健康产业全面升级和互联网转型

随着时代的变迁和人们对健康关注的不断升级,健康产业正迎来一次全面的升级浪潮。在这个浪潮中,河北吉力宝智能科技鞋生态战略正全面启动,为消费者带来高品质智能康养产品和全新的生活方式。 河北吉力宝智能科技鞋有限公司是一家致力于高品质智…

vue点击按钮收缩菜单

问题描述 VUE菜单有一个BUG,当我们点击其它按钮或者首页的时候,已经展示的一级菜单是不会自动收缩的。这个问题也导致很多开发者把一级菜单都换成了二级菜单。 错误展示 错误的效果请看下图。 解决方法 1、寻找菜单文件 因为我使用的是ruoyi的前端框…

D. A Simple Task

Problem - D - Codeforces 思路:这个题就是求环的数量,通过数据范围的大小,我们可以想到用状压dp来做,因为只有19个点,我们可以将环的路径进行状态压缩,用一个二进制数表示环,当某一位为1时表示…

同创永益CNBR平台——云原生时代下的系统稳定器

随着各行业数字化的快速发展,企业的业务运作、经营管理越来越依赖于云原生系统的可靠运行。信息系统服务的连续性, 业务数据的完整性、正确性、有效性会直接关系到企业的生产、经营与决策活动。一旦因自然灾害、设备故障或人为因素等引起信息数据丢失和云原生业务处…

【QT】使用toBase64方法将.txt文件的明文变为非明文(类似加密)

目录 0.环境 1.背景 2.详细代码 2.1 .h主要代码 2.2 .cpp主要代码,主要实现上述的四个方法 0.环境 windows 11 64位 Qt Creator 4.13.1 1.背景 项目需求:我们项目中有配置文件(类似.txt,但不是这个格式,本文以…

SQLyog 连接 MySQL8.0+ 报错2058

问题如下: 解决方案: 1.首先用命令窗口进入user表 2.使用有mysql.user表权限的用户连接mysql并执行如下命令: ALTER USER sqlyoglocalhost IDENTIFIED WITH mysql_native_password BY root23456; 注:使用mysql_native_password…

Sui流动性质押黑客松入围项目公布

经过40多天积极的报名以及精心的选拔,Sui流动性质押黑客松现已完成对所有报名项目的筛选,最终入围名单也在众人的期待中新鲜出炉。两个赛道各六支队伍成功晋级黑客松的Demo Day,让我们来认识一下他们: 入围名单 流动性质押协议 …

git使用过程中出现乱码的解决办法

当我们使用git log或者git diff等git操作时&#xff0c;在终端很可能会遇到乱码&#xff0c;乱码效果如下&#xff1a; <E6><B7><BB><E5><8A><A0><E4><BA><86><E4><B8><80><E4><BA>&…

27、Flink 的SQL之SELECT (Pattern Recognition 模式检测)介绍及详细示例(7)

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

【java、maven】报错: 类文件具有错误的版本 61.0, 应为 55.0 请删除该文件或确保该文件位于正确的类路径子目录中。

问题描述&#xff1a;导入依赖后&#xff0c;运行时发生 解决方法&#xff1a; 1.调高SDK版本 调高前&#xff1a; 调高后&#xff1a;

JavaSE11——面向对象_类和对象

一 面向对象 早期的程序设计经历了“面向问题”、“面向过程”的阶段&#xff0c;随着计算机技术的发展&#xff0c;以及所要解决问题的复杂性的提高&#xff0c;以往的程序设计方法已经不能适应这种发展的需求。于是&#xff0c;从 20 世纪 70 年代开始&#xff0c;相继出现了…

性能测试工具 — JMeter

1、jmeter介绍 Apache JMeter 应用程序是开源软件&#xff0c;是一个 100% 纯 Java 应用程序。用于测试Web应用程序、API和其他网络协议的性能。它具有以下特点&#xff1a; 1. 开源免费&#xff1a;JMeter是Apache软件基金会下的一个开源项目&#xff0c;它被称为Apache JMe…

2011年408计组真题步骤解析

12&#xff0e;下列选项中&#xff0c;描述浮点数操作速度指标的是D 。 A&#xff0e;MIPS B&#xff0e;CPI C&#xff0e;IPC D&#xff0e;MFLOPS 解析&#xff1a;浮点数&#xff1f;float&#xff1f;选有F的D 13&#xff0e;float 型数据通常用 IEEE 754 单精度浮点数格…

企业数据加密软件都有哪些?对公司能加密的软件有哪些

在当今的数字化时代&#xff0c;企业的信息安全已经成为了一个重要的议题。企业数据加密软件是一种能够保护企业敏感信息的工具&#xff0c;它通过将数据转化为无法直接理解的代码&#xff0c;从而防止未经授权的访问和泄露。本文将从企业数据加密软件的定义、种类以及一些具体…

Web自动化测试 —— capability参数配置

一、capability概述 capability是webdriver支持的标准命令之外的扩展命令&#xff08;配置信息&#xff09;配置web驱动属性&#xff0c;如浏览器名称、浏览器平台。结合selenium gird完成分布式、兼容性测试官网地址&#xff1a; https://www.selenium.dev/zh-cn/documentati…

ssm+vue的在线测试管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频&#xff1a; ssmvue的在线测试管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…