自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在 Kubernetes 集群中設(shè)置動(dòng)態(tài) NFS 配置

系統(tǒng)
在這篇文章中,我們將向你展示如何在 Kubernetes(k8s)集群中設(shè)置動(dòng)態(tài) NFS 配置。

Kubernetes 中的動(dòng)態(tài) NFS 存儲(chǔ)配置允許你按需自動(dòng)為 Kubernetes 應(yīng)用配置和管理 NFS(網(wǎng)絡(luò)文件系統(tǒng))卷。它允許創(chuàng)建持久卷(PV)和持久卷聲明(PVC),而無(wú)需手動(dòng)干預(yù)或預(yù)配置存儲(chǔ)。

NFS 配置程序負(fù)責(zé)動(dòng)態(tài)創(chuàng)建 PV 并將其綁定到 PVC。它與 NFS 服務(wù)器交互,為每個(gè) PVC 創(chuàng)建目錄或卷。

先決條件

  • 預(yù)裝 Kubernetes 集群
  • 具有 Kubernetes 集群管理員權(quán)限的普通用戶(hù)
  • 互聯(lián)網(wǎng)連接

事不宜遲,讓我們深入探討步驟:

步驟 1、準(zhǔn)備 NFS 服務(wù)器

就我而言,我將在 Kubernetes 主節(jié)點(diǎn)(Ubuntu 22.04)上安裝 NFS 服務(wù)器。登錄主節(jié)點(diǎn)并運(yùn)行以下命令:

$ sudo apt update
$ sudo apt install nfs-kernel-server -y

創(chuàng)建以下文件夾并使用 NFS 共享它:

$ sudo mkdir /opt/dynamic-storage
$ sudo chown -R nobody:nogroup /opt/dynamic-storage
$ sudo chmod 777 /opt/dynamic-storage

在 /etc/exports 文件中添加以下條目:

$ sudo vi /etc/exports
/opt/dynamic-storage 192.168.1.0/24(rw,sync,no_subtree_check)

保存并關(guān)閉文件。

注意:不要忘記更改導(dǎo)出文件中適合你的部署的網(wǎng)絡(luò)。

要使上述更改生效,請(qǐng)運(yùn)行:

$ sudo exportfs -a
$ sudo systemctl restart nfs-kernel-server
$ sudo systemctl status nfs-kernel-server

NFS-Service-Status-Kubernetes-Master-UbuntuNFS-Service-Status-Kubernetes-Master-Ubuntu

NFS-Service-Status-Kubernetes-Master-Ubuntu

在工作節(jié)點(diǎn)上,使用以下 apt 命令安裝 nfs-common 包。

$ sudo apt install nfs-common -y

步驟 2、安裝和配置 NFS 客戶(hù)端配置程序

NFS 子目錄外部配置程序在 Kubernetes 集群中部署 NFS 客戶(hù)端配置程序。配置程序負(fù)責(zé)動(dòng)態(tài)創(chuàng)建和管理由 NFS 存儲(chǔ)支持的持久卷(PV)和持久卷聲明(PVC)。

因此,要安裝 NFS 子目錄外部配置程序,首先使用以下命令集安裝 helm:

$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh

運(yùn)行以下命令來(lái)啟用 helm 倉(cāng)庫(kù):

$ helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner

使用以下 helm 命令部署配置程序:

$ helm install -n nfs-provisioning --create-namespace nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner --set nfs.server=192.168.1.139 --set nfs.path=/opt/dynamic-storage

helm-install-nfs-provisioning-kubernetes-clusterhelm-install-nfs-provisioning-kubernetes-cluster

helm-install-nfs-provisioning-kubernetes-cluster

上面的 helm 命令將自動(dòng)創(chuàng)建 nfs-provisioning 命名空間,并安裝 NFS 配置程序的容器莢/部署、名稱(chēng)為 nfs-client 的存儲(chǔ)類(lèi),并將創(chuàng)建所需的 rbac。

$ kubectl get all -n nfs-provisioning
$ kubectl get sc -n nfs-provisioning

kubectl-get-all-nfs-provisioning-kubernetes-clusterkubectl-get-all-nfs-provisioning-kubernetes-cluster

kubectl-get-all-nfs-provisioning-kubernetes-cluster

完美,上面的輸出確認(rèn)了配置程序容器莢和存儲(chǔ)類(lèi)已成功創(chuàng)建。

步驟 3、創(chuàng)建持久卷聲明(PVC)

讓我們創(chuàng)建 PVC 來(lái)為你的容器莢或部署請(qǐng)求存儲(chǔ)。PVC 將從存儲(chǔ)類(lèi) nfs-client 請(qǐng)求特定數(shù)量的存儲(chǔ):

$ vi demo-pvc.yml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: demo-claim
  namespace: nfs-provisioning
spec:
  storageClassName: nfs-client
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Mi

保存并關(guān)閉文件。

PVC-Yaml-Dynamic-NFS-KubernetesPVC-Yaml-Dynamic-NFS-Kubernetes

PVC-Yaml-Dynamic-NFS-Kubernetes

運(yùn)行以下 kubectl 命令以使用上面創(chuàng)建的 YML 文件創(chuàng)建 PVC:

$ kubectl create -f demo-pvc.yml

驗(yàn)證 PVC 和 PV 是否創(chuàng)建:

$ kubectl get pv,pvc -n nfs-provisioning

Verify-pv-pvc-dynamic-nfs-kubernetes-clusterVerify-pv-pvc-dynamic-nfs-kubernetes-cluster

Verify-pv-pvc-dynamic-nfs-kubernetes-cluster

太好了,上面的輸出表明 PV 和 PVC 創(chuàng)建成功。

步驟 4、測(cè)試并驗(yàn)證動(dòng)態(tài) NFS 配置

為了測(cè)試和驗(yàn)證動(dòng)態(tài) NFS 配置,請(qǐng)使用以下 YML 文件啟動(dòng)測(cè)試容器莢:

$ vi test-pod.yml
kind: Pod
apiVersion: v1
metadata:
  name: test-pod
  namespace: nfs-provisioning
spec:
  containers:
  - name: test-pod
    image: busybox:latest
    command:
      - "/bin/sh"
    args:
      - "-c"
      - "touch /mnt/SUCCESS && sleep 600"
    volumeMounts:
      - name: nfs-pvc
        mountPath: "/mnt"
  restartPolicy: "Never"
  volumes:
    - name: nfs-pvc
      persistentVolumeClaim:
        claimName: demo-claim

Pod-Yml-Dynamic-NFS-kubernetesPod-Yml-Dynamic-NFS-kubernetes

Pod-Yml-Dynamic-NFS-kubernetes

使用以下 kubectl 命令部署容器莢:

$ kubectl create -f test-pod.yml

驗(yàn)證 test-pod 的狀態(tài):

$ kubectl get pods -n nfs-provisioning

Verify-Test-Pod-Using-NFS-Volume-KubernetesVerify-Test-Pod-Using-NFS-Volume-Kubernetes

Verify-Test-Pod-Using-NFS-Volume-Kubernetes

登錄到容器莢并驗(yàn)證 NFS 卷是否已安裝。

$ kubectl exec -it test-pod -n nfs-provisioning /bin/sh

Access-Dynamic-NFS-Inside-Pod-KubernetesAccess-Dynamic-NFS-Inside-Pod-Kubernetes

Access-Dynamic-NFS-Inside-Pod-Kubernetes

太棒了,上面容器莢的輸出確認(rèn)了動(dòng)態(tài) NFS 卷已安裝且可訪問(wèn)。

最后刪除容器莢和 PVC,查看 PV 是否自動(dòng)刪除。

$ kubectl delete -f test-pod.yml
$ kubectl delete -f demo-pvc.yml
$ kubectl get pv,pvc -n  nfs-provisioning

Delete-Pod-PVC-Dynamic-NFSDelete-Pod-PVC-Dynamic-NFS

責(zé)任編輯:趙寧寧 來(lái)源: Linux中國(guó)
相關(guān)推薦

2019-07-12 16:28:32

MacKubernetes

2024-07-22 15:49:07

KubernetesRedis

2023-06-25 18:53:03

2014-06-30 09:27:17

UbuntuTomcat集群

2012-12-31 10:54:09

LinuxNFS

2020-07-13 07:00:21

Kubernetes

2020-07-20 07:00:00

KubernetesHostPath

2011-07-13 15:32:38

ODBC數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序系統(tǒng)DSN

2010-06-01 10:42:59

動(dòng)態(tài)VDI

2022-06-27 05:48:24

Kubernetes容器

2019-07-30 10:33:01

2022-03-07 10:41:09

云計(jì)算容器Kubernetes

2021-12-02 08:00:00

Kubernetes集群容器

2023-03-08 09:27:51

LVSsession

2010-08-05 14:50:42

AIX NFS

2021-11-11 09:01:01

Helm Chart Kubernetes

2024-07-30 08:00:00

Kubernetes數(shù)據(jù)庫(kù)

2019-07-04 13:10:53

Docker設(shè)計(jì)云計(jì)算

2010-08-05 11:21:58

NFS共享

2018-03-29 15:21:03

LinuxDebian網(wǎng)橋
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)