k8s中部署基于nfs的StorageClass

部署nfs服務

1.1 創建基礎鏡像(選做)

如果以docker的形式部署nfs server, 參考此步驟, 若否, 該步驟可忽略。

mkdir /data/nfs -p
chmod 755 /data/nfs# NFS默認端口: 111、2049、20048
docker run -d \
--privileged \
--name nfs_server \
-p 111:111/tcp \
-p 111:111/udp \
-p 2049:2049/tcp \
-p 2049:2049/udp \
-p 30001-30005:30001-30005/tcp \
-p 30001-30005:30001-30005/udp \
-v /data/nfs:/data/nfs \
centos:centos7.9.2009 /usr/sbin/init # docker exec -it nfs_server bash# =================== 生成鏡像并推送到私有倉庫 =================== #
docker commit -p -a "langpf" -m "centos7.9.2009, nfs_server" 25c6d01e41b0 rpp-harbor.com/my-project/nfs_server:centos7.9.2009-u$. docker save -o nfs_server-centos7.9.2009-u.tar rpp-harbor.com/my-project/nfs_server:centos7.9.2009-u
$. docker load --input nfs_server-centos7.9.2009-u.tar$. docker push rpp-harbor.com/my-project/nfs_server:centos7.9.2009-u

1.2 部署NFS Server

# step 1(docker部署時執行)
docker exec -it nfs_server bash
chmod 755 /data/nfs# step 2
yum -y install nfs-utils rpcbind
yum install net-tools -y# step 3
$. vi /etc/exports
# 寫入
/data/nfs 192.168.1.0/24(rw,sync,all_squash,anonuid=0,anongid=0)
/data/nfs 172.17.0.0/24(rw,sync,root_squash)
# -----
/data/nfs 172.17.0.0/24(rw,sync,root_squash)
/data/nfs 192.168.31.0/24(insecure,fsid=0,rw,sync,no_root_squash,acl)
# 編譯生效
$. exportfs -arv# ===================== 修改nfs端口號 ===================== #
# 1. 修改 /etc/sysconfig/nfs 配置
$. vi /etc/sysconfig/nfs
# 在文末加入
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004
STATD_OUTGOING_PORT=30005# 2. 修改 /etc/modprobe.d/lockd.conf 配置
$. vi /etc/modprobe.d/lockd.conf
# 在/etc/modprobe.d/lockd.conf中添加以下設置:
options lockd nlm_tcpport=30002
options lockd nlm_udpport=30002# 3. 重新加載NFS配置和服務:
systemctl restart rpcbind
systemctl restart nfs
#systemctl restart nfs-config
#systemctl restart nfs-idmap
#systemctl restart nfs-lock# strep systemctl start rpcbind
systemctl start nfs# step
systemctl status rpcbind
systemctl status nfs
systemctl enable rpcbind
systemctl enable nfs# 4.  
exportfs -arv# 校驗配置等
showmount -e
showmount -e 192.168.31.133
# -----
showmount -e 192.168.1.161
rpcinfo -p 
rpcinfo -p 192.168.1.161

部署nfs客戶端

需要在k8s所有節點部署nfs客戶端,在k8s所有節點部署執行如下命令, 部署nfs客戶端:

# ========================= 客戶端 ========================= #
# 普通客戶端需要先安裝nfs, 執行如下命令
# k8s集群要掛載nfs, 需要在所有節點執行如下命令
yum -y install nfs-utils # =================== 安裝后nfs在客戶端執行以下命令驗證 ================ #
# ----------
showmount -e 172.17.0.2
showmount -e 192.168.31.133
showmount -e 192.168.1.161# -----------
mount -t nfs 172.17.0.2:/data/nfs /data -o proto=tcp -o nolock
mount -t nfs 192.168.31.133:/data/nfs /data2 -o proto=tcp -o nolock
umount /data# -----------
mount -t nfs 192.168.1.161:/data/nfs /data2 -o proto=tcp -o nolock
umount /data2# ===================== 其它命令 ====================== #
# 在服務端執行,查看nfs狀態信息
nfsstat -s# 在客戶端執行,查看nfs掛載信息
nfsstat -m# 查看服務端的遠程共享信息,此命令會調用服務端的20048端口
showmount -e 192.168.202.151# 查看rpcbind注冊的所有端口號
rpcinfo -p
rpcinfo -p 192.168.1.161# 在服務端執行,重新掛載/etc/exports中配置
exportfs -r

創建sc,pv,pvc,pod資源

k8s命令行執行如下命令, 創建資源:

kubectl apply -f nfs-sc-pv-pvc-pvc-pod.yaml

nfs-sc-pv-pvc-pvc-pod.yaml文件:

# kubectl config set-context $(kubectl config current-context) --namespace=rpp-nfs-ns
# kubectl config get-contexts
# kubectl get ns# kubectl get pod -n rpp-nfs-ns
# kubectl describe pod rpp-nfs-pod
# kubectl exec -it rpp-nfs-pod -- sh
# kubectl logs rpp-nfs-pod  
# kubectl logs -f rpp-nfs-pod  # kubectl get pv
# kubectl describe pv rpp-nfs-pv# kubectl get pvc
# kubectl describe pvc rpp-nfs-pvc# kubectl get sc
# kubectl describe sc rpp-nfs-sc    
# ns
apiVersion: v1
kind: Namespace
metadata:name: rpp-nfs-ns
---      
# 卷插件為NFS的存儲類,
apiVersion: storage.k8s.io/v1  
kind: StorageClass  
metadata:  name: rpp-nfs-sc# namespace: rpp-nfs-ns # 無ns屬性
provisioner: kubernetes.io/nfs  
#parameters:  
#  path: /data/nfs
#  server: 192.168.31.133
---
# 創建NFS類型的PV, 并綁定SC
apiVersion: v1  
kind: PersistentVolume  
metadata:  name: rpp-nfs-pv# namespace: rpp-nfs-ns # 無ns屬性
spec:  capacity:  storage: 5Gi  accessModes:  - ReadWriteMany  persistentVolumeReclaimPolicy: Retain  storageClassName: rpp-nfs-scvolumeMode: Filesystem  nfs:  server: 192.168.1.161path: /data/nfs  readOnly: false
---
# 創建PVC, 指定StorageClass為rpp-nfs-sc, 并請求1GB的存儲空間
apiVersion: v1
kind: PersistentVolumeClaim
metadata:  name: rpp-nfs-pvc# namespace: rpp-nfs-ns # 無ns屬性
spec:storageClassName: rpp-nfs-scaccessModes:- ReadWriteManyresources:requests:storage: 1Gi
---
# POD掛載PVC
apiVersion: v1
kind: Pod
metadata:name: rpp-nfs-podnamespace: rpp-nfs-ns
spec:containers:- name: springboot-docker2  # 容器名image: rpp-harbor.com/my-project/spring-boot-docker2:0.0.1-SNAPSHOTvolumeMounts:- name: rpp-volumemountPath: /data2ports:                 # 端口- containerPort: 8600  # 容器暴露的端口name: business-port- containerPort: 8800name: actuator-portvolumes:  - name: rpp-volume  persistentVolumeClaim:  claimName: rpp-nfs-pvc

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

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

相關文章

[CTFshow 紅包挑戰] 刷題記錄

文章目錄 紅包挑戰7紅包挑戰8紅包挑戰9 紅包挑戰7 考點&#xff1a;xdebug拓展 源碼 <?php highlight_file(__FILE__); error_reporting(2);extract($_GET); ini_set($name,$value);system("ls ".filter($_GET[1])."" );function filter($cmd){$cmd s…

1832_org-mode的注釋處理

Grey # :OPTIONS ^:nil org-mode的注釋處理 關于這部分其實比較簡單&#xff0c;在我現在的使用訴求上來說要求不多。但是我覺得如果考慮以后把文學式編程作為一種開發的主要體驗的話&#xff0c;掌握這樣的操作很有必要。因為我可以控制部分信息的輸出。 自然&#xff0c;控…

LeetCode-數組-重疊、合并、覆蓋問題-中等難度

435. 無重疊區間 我認為區間類的題型&#xff0c;大多數考驗的是思維能力&#xff0c;以及編碼能力&#xff0c;該類題型本身并無什么算法可言&#xff0c;主要是思維邏輯&#xff0c;比如本題實際上你只需要能夠總結出重疊與不重疊的含義&#xff0c;再加上一點編碼技巧&#…

go-zero開發入門-API服務開發示例

接口定義 定義 API 接口文件 接口文件 add.api 的內容如下&#xff1a; syntax "v1"info (title: "API 接口文件示例"desc: "演示如何編寫 API 接口文件"author: "一見"date: "2023年12月07日"version: "…

Spring Boot 優雅地處理重復請求

前 言 對于一些用戶請求&#xff0c;在某些情況下是可能重復發送的&#xff0c;如果是查詢類操作并無大礙&#xff0c;但其中有些是涉及寫入操作的&#xff0c;一旦重復了&#xff0c;可能會導致很嚴重的后果&#xff0c;例如交易的接口如果重復請求可能會重復下單。 重復的場…

Verilog基礎:$random系統函數的使用

相關閱讀 Verilog基礎?編輯https://blog.csdn.net/weixin_45791458/category_12263729.html $random系統函數語法的BNF范式如下所示&#xff0c;有關BNF范式相關內容&#xff0c;可以瀏覽以往文章Verilog基礎&#xff1a;巴科斯范式(BNF)。 $random系統函數在每次調用時返回一…

【IDEA】IntelliJ IDEA中進行Git版本控制

本篇文章主要記錄一下自己在IntelliJ IDEA上使用git的操作&#xff0c;一個新項目如何使用git進行版本控制。文章使用的IDEA版本 IntelliJ IDEA Community Edition 2023.3&#xff0c;遠程倉庫為https://gitee.com/ 1.配置Git&#xff08;File>Settings&#xff09; 2.去Git…

[gRPC實現go調用go]

1什么是RPC RPC&#xff1a;Remote Procedure Call&#xff0c;遠程過程調用。簡單來說就是兩個進程之間的數據交互。正常服務端的接口服務是提供給用戶端(在Web開發中就是瀏覽器)或者自身調用的&#xff0c;也就是本地過程調用。和本地過程調用相對的就是&#xff1a;假如兩個…

深度優先遍歷(DFS)

時間復雜度與深搜一致&#xff1b;

STM32 定時器總結

縮寫 ARR: Auto-Reload Register&#xff08;保存定時器的計數范圍&#xff09; PSC: Prescaler register&#xff08;預分頻器寄存器&#xff0c;根據設置的分頻因子N&#xff0c;計數N個定時器時鐘脈沖后&#xff0c;產生一個CNT計數&#xff0c;以此實現分頻功能&#xff0…

LeetCode 2048. 下一個更大的數值平衡數

一、題目 1、題目描述 如果整數 x 滿足&#xff1a;對于每個數位 d &#xff0c;這個數位 恰好 在 x 中出現 d 次。那么整數 x 就是一個 數值平衡數 。 給你一個整數 n &#xff0c;請你返回 嚴格大于 n 的 最小數值平衡數。 0 < n < 1e6 2、接口描述 public:int nextB…

Android渲染-AHardwareBuffer

本文主要從應用的角度介紹android的native層AHardwareBuffer創建紋理以及保存渲染數據。 HardwareBuffer 要介紹native層的AHardwareBuffer&#xff0c;就需要先從Java層的HardwareBuffer說起。Android官方對于HardwareBuffer介紹如下&#xff1a; HardwareBuffer wraps a na…

HttpURLConnection OOM問題記錄

使用HttpURLConnection 上傳大文件&#xff0c;會出現內存溢出問題&#xff1a; 觀察HttpURLConnection 源碼&#xff1a; Overridepublic synchronized OutputStream getOutputStream() throws IOException {connecting true;SocketPermission p URLtoSocketPermission(th…

【接口分享】熱門好用的API,含免費次數

語音驗證碼短信&#xff1a;撥打電話告知用戶驗證碼&#xff0c;實現信息驗證。短信驗證碼&#xff1a;可用于登錄、注冊、找回密碼、支付認證等等應用場景。支持三大運營商&#xff0c;3秒可達&#xff0c;99.99&#xff05;到達率&#xff0c;支持大容量高并發。通知短信&…

基于SSM的點餐系統的設計與實現

末尾獲取源碼 開發語言&#xff1a;Java Java開發工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 數據庫&#xff1a;MySQL5.7和Navicat管理工具結合 服務器&#xff1a;Tomcat8.5 開發軟件&#xff1a;IDEA / Eclipse 是否Maven項目&#xff1a;是 目錄…

mysql設置為密碼登錄

要設置Ubuntu上的MySQL需要密碼登錄&#xff0c;你可以使用以下步驟&#xff1a; 打開終端。 輸入以下命令登錄到 MySQL 服務器&#xff1a; sudo mysql -u root -p按Enter后&#xff0c;系統會要求輸入密碼。如果是第一次登錄&#xff0c;你可能需要直接按Enter鍵&#xff08…

【已解決】解決UbuntuKali無法進行SSH遠程連接

目錄 Ubuntu20.04配置SSH遠程連接Kali Linux配置SSH遠程連接 Ubuntu20.04配置SSH遠程連接 首先更新安裝包 sudo apt-get update 下載SSH服務 sudo apt install openssh-server 查看SSH服務 service ssh status 打開 /etc/ssh/sshd_config文件修改配置文件 將PermitRootLog…

知識筆記(五十二)———MySQL 刪除數據表

MySQL中刪除數據表是非常容易操作的&#xff0c;但是你在進行刪除表操作時要非常小心&#xff0c;因為執行刪除命令后所有數據都會消失。 語法 以下為刪除 MySQL 數據表的通用語法&#xff1a; DROP TABLE table_name ; -- 直接刪除表&#xff0c;不檢查是否存在 或 DROP…

基于Debain安裝 Docker 和 Docker Compose

一、安裝Docker # 先升級一下系統 (Ubuntu / Debian 系) sudo apt-get update sudo apt-get upgrade# 如果你是 CentOS、紅帽系列則使用&#xff1a; yum update yum upgrade# 安裝 Docker curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh二、Dock…

LeetCode 0070. 爬樓梯:動態規劃(遞推)

【LetMeFly】70.爬樓梯&#xff1a;動態規劃&#xff08;遞推&#xff09; 力扣題目鏈接&#xff1a;https://leetcode.cn/problems/climbing-stairs/ 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢&#x…