如何安裝 NFS Subdir External Provisioner

簡介

在 Kubernetes 中,動態存儲是現代應用程式管理的重要部分。NFS Subdir External Provisioner 是一種簡單且高效的存儲解決方案,它允許 Kubernetes 動態分配基於 NFS 的持久化存儲卷(Persistent Volume)。該工具通過在 NFS 伺服器中創建子目錄,為每個 PVC(Persistent Volume Claim)提供獨立的存儲空間。

在本教程中,我們將介紹如何安裝和配置 NFS Subdir External Provisioner。


步驟 1:準備 NFS 伺服器

在安裝 NFS Subdir External Provisioner 前,需要一個可用的 NFS 伺服器。以下是配置 NFS 的簡單步驟:

確認 NFS 伺服器正常運行:

showmount -e <NFS_SERVER_IP>

重新加載 NFS 配置並啟動服務:

sudo exportfs -r
sudo systemctl restart nfs-kernel-server

修改 /etc/exports 文件,添加共享路徑:

echo "/mnt/nfs-share *(rw,sync,no_subtree_check,no_root_squash)" | sudo tee -a /etc/exports

創建共享目錄:

sudo mkdir -p /mnt/nfs-share
sudo chmod 777 /mnt/nfs-share

安裝 NFS 伺服器(假設您使用的是 Ubuntu):

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

步驟 2:安裝 Helm

NFS Subdir External Provisioner 通常通過 Helm Chart 安裝。若尚未安裝 Helm,請先完成以下步驟:

驗證安裝是否成功:

helm version

下載 Helm:

curl -sSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

步驟 3:安裝 NFS Subdir External Provisioner

    • nfs.server:填入您的 NFS 伺服器 IP。
    • nfs.path:填入您在步驟 1 中設置的共享目錄。

驗證安裝:

kubectl get pods -n nfs-provisioner

您應該能看到 NFS Provisioner 的 Pod 正常運行。

使用 Helm 安裝:

helm install nfs-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
  --namespace nfs-provisioner \
  --create-namespace \
  --set nfs.server=<NFS_SERVER_IP> \
  --set nfs.path=/mnt/nfs-share

新增 Helm Chart Repository:

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

步驟 4:設置存儲類(StorageClass)

安裝完成後,會自動創建一個 StorageClass,供 Kubernetes 使用 NFS 進行動態存儲分配。

設置默認存儲類(可選):

kubectl patch storageclass <STORAGE_CLASS_NAME> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

查看自動創建的 StorageClass

kubectl get storageclass

步驟 5:測試 PVC 和動態存儲

驗證 NFS 伺服器上是否創建了對應的子目錄:

ls /mnt/nfs-share

驗證 PVC 是否成功綁定:

kubectl get pvc

應用 PVC:

kubectl apply -f pvc-test.yaml

創建一個測試 PVC(pvc-test.yaml):

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: <STORAGE_CLASS_NAME>

總結

NFS Subdir External Provisioner 是 Kubernetes 中一個非常方便的工具,能夠為基於 NFS 的存儲提供動態卷分配功能。它特別適合需要共享存儲資源的應用場景,如多個 Pod 同時訪問相同的存儲。

通過本教程,您現在應該能夠:

  • 配置並啟用 NFS 伺服器。
  • 使用 Helm 安裝 NFS Subdir External Provisioner。
  • 測試和驗證動態存儲是否正常運行。

使用GPT整理

Read more

如何安裝 KubeSphere 以及管理 Workspace 和新增 Label

前言 在 Kubernetes 的世界中,KubeSphere 是一個功能強大的開源容器平台,它不僅讓 Kubernetes 的管理更簡單,還集成了多集群管理、DevOps、微服務治理等功能。本篇文章將教您如何使用 Helm 快速安裝 KubeSphere,並如何通過管理 Workspace 和新增 Label 來實現資源的高效管理。 一、使用 Helm 安裝 KubeSphere 1. 為什麼選擇 Helm 安裝? Helm 是 Kubernetes 中廣泛使用的包管理工具,使用 Helm 安裝 KubeSphere 有以下優點: * 自動化:簡化安裝過程,減少手動配置。 * 靈活性:可以根據需求自定義安裝的模組。 * 版本控制:支持管理和回滾安裝的不同版本。 2. 安裝前準備 在開始安裝之前,請確保以下條件:

By Tim Chiagn

我的經驗

1. 網絡與安全 (Networking & Security) * Fortigate: 防火牆來管理網路環境 * Traefik: 用於 K8s 的 2. 虛擬化與存儲 (Virtualization & Storage) * Esxi: 買了一台server 使用 Esxi 管理 vm * TrueNAS: 還沒有買 NAS 使用這個加減用一下 3. DevOps 與持續交付 (DevOps & CI/CD) * ArgoCD: GitOps 工具,用於 Kubernetes 的應用交付和管理,支持自動化部署和同步。 * KubeSphere:提供完整的 CI/CD 工作流管理、應用部署和 DevOps 整合功能,是 Kubernetes

By Tim Chiagn