部署NFS版StorageClass(存儲類)

部署NFS版StorageClass存儲類

    • NFS版PV動態供給StorageClass(存儲類)
      • 基于NFS實現動態供應
      • 下載`NFS存儲類資源清單`
      • 部署NFS服務器
      • 為StorageClass(存儲類)創建所需的RBAC
      • 部署nfs-client-provisioner的deployment
      • 創建StorageClass
      • 使用存儲類創建PVC

NFS版PV動態供給StorageClass(存儲類)

  • 存儲類的好處之一便是支持PV的動態供給,它甚至可以直接被視作為PV的創建模版,用戶用到持久性存儲時,需要通過創建PVC來綁定匹配的PV,此類操作需求較大,或者當管理員手動創建的PV無法滿足PVC的所有需求時,系統按PVC的需求標準動態創建適配的PV會為存儲管理帶來極大的靈活性,不過僅那些屬于StorageClassPVCPV才能產生綁定關系,即沒有指定StorageClassPVC只能綁定同類的PV
  • 存儲類對象名稱至關重要,它是用戶調用的標識,創建存儲類對象時,除了名稱之外,還需要為其定義三個關鍵字段。provisioner(供應者)parameter(參數)reclaimPolicy(回收策略)
  • 所以kubernetes提供了一種可以動態分配的工作機制,可用自動創建PV,該機制依賴于StorageClassAPI,將某個存儲節點劃分1T給kubernetes使用,當用戶申請5Gi的PVC時,會自動從這1T的存儲空間去創建一個5Gi的PV,而后自動與之進行關聯綁定。
  • 動態PV供給的啟用需要事先創建一個存儲類,不同的Provisoner(供應者)的創建方法各有不同,并非所有的存儲卷插件都由Kubernetes內建支持PV動態供給。

基于NFS實現動態供應

參考: https://www.cnblogs.com/xunweidezui/p/16930975.html

由于kubernetes內部不包含NFS驅動,所以需要使用外部驅動;
nfs-subdir-external-provisioner是一個自動供應器,它使用NFS服務端來支持動態供應
NFS-subdir-external- provisioner實例負責監視PersistentVolumeClaims(PVC)請求StorageClass,并自動為它們創建NFS所支持的PresistentVolumes(PV)


下載NFS存儲類資源清單

NFS版StorageClass插件GitHub項目地址: https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner

部署NFS Provisioner參考

免積分下載部署yaml


部署NFS服務器

https://blog.csdn.net/omaidb/article/details/120926883


為StorageClass(存儲類)創建所需的RBAC

nfs-rbac.yaml示例

---
# 創建命名空間
apiVersion: v1
kind: Namespace
metadata:name: storage
---
# 創建服務賬號
kind: ServiceAccount
apiVersion: v1
metadata:# 服務賬號名name: nfs-client-provisioner# 替換為deployment的命名空間namespace: storage
---
# 創建集群角色
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:# 集群角色名name: nfs-client-provisioner-runner
# 添加集群角色權限
rules:- apiGroups: [""]# 向該角色增加對PV執行查看,創建,刪除 權限resources: ["persistentvolumes"]verbs: ["get", "list", "watch", "create", "delete"]- apiGroups: [""]# 向該角色增加對PVC執行查看,更新 權限resources: ["persistentvolumeclaims"]verbs: ["get", "list", "watch", "update"]- apiGroups: ["storage.k8s.io"]# 向該角色增加對動態存儲類執行查看 權限resources: ["storageclasses"]verbs: ["get", "list", "watch"]- apiGroups: [""]# 向該角色增加對events(集群事件)進行 創建 更新 補丁 權限resources: ["events"]verbs: ["create", "update", "patch"]
---
# 創建集群角色綁定
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:# 角色綁定的名稱name: run-nfs-client-provisioner
subjects:# 綁定服務賬號- kind: ServiceAccount# 要綁定的服務賬號名--就是第一個yaml創建的saname: nfs-client-provisioner# 綁定到哪個命名空間namespace: storage
roleRef:kind: ClusterRole# 要綁定的集群角色名--就是第2個yaml創建的集群角色name: nfs-client-provisioner-runnerapiGroup: rbac.authorization.k8s.io
---
# 創建role
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:# 創建的角色名name: leader-locking-nfs-client-provisioner
rules:- apiGroups: [""]# 向該角色增加對endpoint 查看 創建 更新 補丁 的權限resources: ["endpoints"]verbs: ["get", "list", "watch", "create", "update", "patch"]
---
# 創建role綁定
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:# 該角色綁定的名字name: leader-locking-nfs-client-provisioner
subjects:- kind: ServiceAccount# 要綁定的服務賬號名--就是第一個yaml創建的服務賬號name: nfs-client-provisioner# 替換為deployment要部署到的命名空間# 綁定到storage命名空間namespace: storage
roleRef:kind: Role# 要綁定的角色名稱,就是上一個yaml創建的rolename: leader-locking-nfs-client-provisionerapiGroup: rbac.authorization.k8s.io

# 清理rbac授權
kubectl delete -f nfs-rbac.yaml -n kube-system# 執行rbac授權
kubectl apply -f nfs-rbac.yaml

部署nfs-client-provisioner的deployment

apiVersion: apps/v1
kind: Deployment
metadata:# Deployment名name: nfs-client-provisionerlabels:app: nfs-client-provisioner# 部署到哪個命名空間namespace: storage
spec:replicas: 1strategy:type: Recreateselector:matchLabels:app: nfs-client-provisionertemplate:metadata:labels:app: nfs-client-provisionerspec:# 使用哪個服務賬號serviceAccountName: nfs-client-provisionercontainers:- name: nfs-client-provisioner# image: lizhenliang/nfs-subdir-external-provisioner:v4.0.1image: k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2volumeMounts:- name: nfs-client-rootmountPath: /persistentvolumesenv:- name: PROVISIONER_NAMEvalue: k8s-sigs.io/nfs-subdir-external-provisioner- name: NFS_SERVER# NFS服務器地址value: 192.168.31.63- name: NFS_PATH# NFS服務器share目錄value: /ifs/kubernetesvolumes:- name: nfs-client-rootnfs:# NFS服務器地址server: 192.168.31.63# NFS服務器share目錄path: /ifs/kubernetes

創建StorageClass

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: nfs-client
provisioner: k8s-sigs.io/nfs-subdir-external-provisioner # 或選擇其他名稱,必須與部署的環境 PROVISIONER_NAME 匹配
parameters:# 啟用PV歸檔模式 true|falsearchiveOnDelete: "false"

使用存儲類創建PVC

---
# 創建pvc
apiVersion: v1
kind: PersistentVolumeClaim
metadata:# pvc名稱name: pv-volume
spec:# 存儲類名稱storageClassName: nfs-clientaccessModes:- ReadWriteOnceresources:requests:storage: 10Mi # pvc容量

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/76613.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76613.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/76613.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vue使用el-table給每一行數據上面增加一行自定義合并行

// template <template><el-table:data"flattenedData":span-method"objectSpanMethod"borderclass"custom-header-table"style"width: 100%"ref"myTable":height"60vh"><!-- 訂單詳情列 -->&l…

vue項目使用html2canvas和jspdf將頁面導出成PDF文件

一、需求&#xff1a; 頁面上某一部分內容需要生成pdf并下載 二、技術方案&#xff1a; 使用html2canvas和jsPDF插件 三、js代碼 // 頁面導出為pdf格式 import html2Canvas from "html2canvas"; import jsPDF from "jspdf"; import { uploadImg } f…

大模型LLM表格報表分析:markitdown文件轉markdown,大模型markdown統計分析

整體流程&#xff1a;用markitdown工具文件轉markdown&#xff0c;然后大模型markdown統計分析 markitdown https://github.com/microsoft/markitdown 在線體驗&#xff1a;https://huggingface.co/spaces/AlirezaF138/Markitdown 安裝&#xff1a; pip install markitdown…

Linux 第二講 --- 基礎指令(二)

前言 這是基礎指令的第二部分&#xff0c;但是該部分的講解會大量使用到基礎指令&#xff08;一&#xff09;的內容&#xff0c;為了大家的觀感&#xff0c;如果對Linux的一些基本指令不了解的話&#xff0c;可以先看基礎指令&#xff08;一&#xff09;&#xff0c;同樣的本文…

python格式化字符串漏洞

什么是python格式化字符串漏洞 python中&#xff0c;存在幾種格式化字符串的方式&#xff0c;然而當我們使用的方式不正確的時候&#xff0c;即格式化的字符串能夠被我們控制時&#xff0c;就會導致一些嚴重的問題&#xff0c;比如獲取敏感信息 python常見的格式化字符串 百…

LLaMA-Factory雙卡4090微調DeepSeek-R1-Distill-Qwen-14B醫學領域

unsloth單卡4090微調DeepSeek-R1-Distill-Qwen-14B醫學領域后&#xff0c;跑通一下多卡微調。 1&#xff0c;準備2卡RTX 4090 2&#xff0c;準備數據集 醫學領域 pip install -U huggingface_hub export HF_ENDPOINThttps://hf-mirror.com huggingface-cli download --resum…

React Hooks: useRef,useCallback,useMemo用法詳解

1. useRef&#xff08;保存引用值&#xff09; useRef 通常用于保存“不會參與 UI 渲染&#xff0c;但生命周期要長”的對象引用&#xff0c;比如獲取 DOM、保存定時器 ID、WebSocket等。 新建useRef.js組件&#xff0c;寫入代碼&#xff1a; import React, { useRef, useSt…

Spring AI 結構化輸出詳解

一、Spring AI 結構化輸出的定義與核心概念 Spring AI 提供了一種強大的功能&#xff0c;允許開發者將大型語言模型&#xff08;LLM&#xff09;的輸出從字符串轉換為結構化格式&#xff0c;如 JSON、XML 或 Java 對象。這種結構化輸出能力對于依賴可靠解析輸出值的下游應用程…

THM Billing

1. 信息收集 (1) Nmap 掃描 bashnmap -T4 -sC -sV -p- 10.10.189.216 輸出關鍵信息&#xff1a; PORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 8.4p1 Debian 5deb11u380/tcp open http Apache 2.4.56 (Debian) # MagnusBilling 應用3306/tcp open …

布局決定終局:基于開源AI大模型、AI智能名片與S2B2C商城小程序的戰略反推思維

摘要&#xff1a;在商業競爭日益激烈的當下&#xff0c;布局與終局預判成為企業成功的關鍵要素。本文探討了布局與終局預判的智慧性&#xff0c;強調其雖無法做到百分之百準確&#xff0c;但能顯著提升思考能力。終局思維作為重要戰略工具&#xff0c;并非一步到位的戰略部署&a…

貪心算法 day08(加油站+單調遞增的數字+壞了的計算機)

目錄 1.加油站 2.單調遞增的數字 3.壞了的計算器 1.加油站 鏈接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; gas[index] - cost[index]&#xff0c;ret 表示的是在i位置開始循環時剩余的油量 a到達的最大路徑假設是f那么我們可以得出 a b …

【技術派部署篇】云服務器部署技術派

1 環境搭建 1.1 JDK安裝 # ubuntu sudo apt update # 更新apt apt install openjdk-8-jdk # 安裝JDK安裝完畢之后&#xff0c;執行 java -version 命令進行驗證&#xff1a; 1.2 Maven安裝 cd ~ mkdir soft cd soft wget https://dlcdn.apache.org/maven/maven-3/3.8.8/bina…

Linux:35.其他IPC和IPC原理+信號量入門

通過命名管道隊共享內存的數據發送進行保護的bug&#xff1a; 命名管道掛掉后&#xff0c;進程也掛掉了。 6.systemV消息隊列 原理:進程間IPC:原理->看到同一份資源->維護成為一個隊列。 過程&#xff1a; 進程A,進程B進行通信。 讓操作系統提供一個隊列結構&#xff0c;…

【數據結構】紅黑樹超詳解 ---一篇通關紅黑樹原理(含源碼解析+動態構建紅黑樹)

一.什么是紅黑樹 紅黑樹是一種自平衡的二叉查找樹&#xff0c;是計算機科學中用到的一種數據結構。1972年出現&#xff0c;最初被稱為平衡二叉B樹。1978年更名為“紅黑樹”。是一種特殊的二叉查找樹&#xff0c;紅黑樹的每一個節點上都有存儲表示節點的顏色。每一個節點可以是…

2024年第十五屆藍橋杯CC++大學A組--成績統計

2024年第十五屆藍橋杯C&C大學A組--成績統計 題目&#xff1a; 動態規劃&#xff0c; 對于該題&#xff0c;考慮動態規劃解法&#xff0c;先取前k個人的成績計算其方差&#xff0c;并將成績記錄在數組中&#xff0c;記錄當前均值&#xff0c;設小藍已檢查前i-1個人的成績&…

vue2使用ezuikit-js播放螢石視頻

需求&#xff1a;需要在大屏上播放螢石視頻&#xff0c;用到官方的ezuikit-js插件實現&#xff0c;并實現視頻播放切換功能。有個問題至今沒有解決&#xff0c;就是螢石視頻的寬高是固定的&#xff0c;不會根據大屏縮放進行自適應。我這邊做了簡單的刷新自適應。 1.下載ezuikit…

愛普生TG-5510CA和TG-5510CB晶振成為服務器中的理想之選

在數字化時代&#xff0c;服務器作為數據存儲、處理與傳輸的核心樞紐&#xff0c;其性能的優劣直接影響著整個信息系統的運行效率與穩定性。從企業內部的數據中心到云計算服務提供商的大規模集群&#xff0c;服務器需要應對海量數據的高速處理與頻繁交互。而在服務器復雜精密的…

使用opentelemetry 可觀測監控springboot應用的指標、鏈路實踐,使用zipkin展示鏈路追蹤數據,使用grafana展示指標

1.安裝docker&#xff0c;docker-compose &#xff08;1&#xff09;安裝依賴包 yum install -y yum-utils device-mapper-persistent-data lvm22.2、部署dockertar xvf docker-20.10.19.tgz cp docker/* /usr/bin/vim /usr/lib/systemd/system/docker.service[Unit] Descript…

5. 藍橋公園

題目描述 小明喜歡觀景&#xff0c;于是今天他來到了藍橋公園。 已知公園有 N 個景點&#xff0c;景點和景點之間一共有 M 條道路。小明有 Q 個觀景計劃&#xff0c;每個計劃包含一個起點 stst 和一個終點 eded&#xff0c;表示他想從 stst 去到 eded。但是小明的體力有限&am…

虛幻基礎:碰撞幀運算

能幫到你的話&#xff0c;就給個贊吧 &#x1f618; 文章目錄 碰撞碰撞盒線段檢測 幀運算&#xff1a;每個程序流就是一幀的計算結果速度過快時(10000)&#xff0c;導致每幀移動過大(83)&#xff0c;從而導致碰撞盒錯過而沒有碰撞速度快的碰撞要用線段檢測 碰撞 碰撞盒 線段檢…