# k8s 持久化儲存

以下是圖片內容的文字辨識及翻譯成繁體中文：

---

### **數據卷 emptydir，是本地存儲，pod 重啟，數據不存在了，需要對數據持久化存儲**

#### **1. NFS，網絡存儲**

- **pod 重啟，數據還存在的方式**

---

### **第一步：找一台服務器作為 NFS 服務端**

#### **(1) 安裝 NFS**

```bash
yum install -y nfs-utils

```

---

#### **(2) 設置掛載路徑**

```bash
[root@atonline ntest /]# vi /etc/exports
/data/nfs *(rw,no_root_squash)

```

---

#### **(3) 掛載路徑需要創建出來**

```bash
[root@atonline ntest data]# mkdir nfs
[root@atonline ntest data]# ls
nfs

```

---

### **說明：**

1. **emptydir** 是 Kubernetes 中的一種臨時存儲方式，pod 重啟後數據會丟失。
2. **NFS（網絡文件系統）** 提供一種數據持久化存儲解決方案，pod 重啟後數據仍然保留。
3. **操作流程**： 
    - 安裝 NFS 軟件。
    - 配置 NFS 的掛載路徑。
    - 確保掛載的目錄已創建。

---

以下是圖片內容的文字辨識及翻譯成繁體中文：

---

### **第二步：在 k8s 集群 node 節點安裝 NFS**

```bash
yum install -y nfs-utils

```

---

### **說明：**

- 在 Kubernetes 集群的每個節點上安裝 **NFS 客戶端工具** (`nfs-utils`)，以便節點能夠掛載 NFS 共享存儲。

---

以下是圖片內容的文字辨識及翻譯成繁體中文：

---

### **第三步：在 NFS 服務器啟動 NFS 服務**

```bash
# systemctl start nfs
# ps -ef | grep nfs
15:03 ? 00:00:00 [nfsd4_callbacks]

```

---

### **第四步：在 k8s 集群部署應用使用 NFS 持久化網絡存儲**

```bash
vi nfs-nginx.yaml
kubectl apply -f nfs-nginx.yaml

[root@k8smaster pv]# kubectl exec -it nginx-depl-6b96bc8d7d-92qhv bash
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version.

root@nginx-depl-6b96bc8d7d-92qhv:/# ls /usr/share/nginx/html
index.html

```

---

### **說明：**

#### **第三步：啟動 NFS 服務**

1. **啟動 NFS 服務**：通過 `systemctl start nfs`。
2. **驗證 NFS 啟動狀態**：使用 `ps -ef | grep nfs` 查看進程是否正常啟動。

#### **第四步：部署應用並使用 NFS**

1. **編輯 YAML 文件**：創建或修改 `nfs-nginx.yaml` 文件，配置 NFS 為持久化存儲。
2. **應用配置文件**：使用 `kubectl apply` 部署應用。
3. **驗證 NFS 存儲是否生效**： 
    - 使用 `kubectl exec` 進入 Pod。
    - 確認存儲目錄（如 `/usr/share/nginx/html`）內的文件是否存在，例如 `index.html`。

---

### **PV 和 PVC**

1. **PV（Persistent Volume，持久化存儲）：**
    
    
    - 持久化存儲，對存儲資源進行抽象。
    - 對外提供可調用的地方（生產者）。
2. **PVC（Persistent Volume Claim，持久化存儲請求）：**
    
    
    - 用於調用，不需要關心內部實現細節（消費者）。

[![image-1737425386000.png](https://bookstack.treemanou.com/uploads/images/gallery/2025-01/scaled-1680-/osWVdYXoaoWBvta2-image-1737425386000.png)](https://bookstack.treemanou.com/uploads/images/gallery/2025-01/osWVdYXoaoWBvta2-image-1737425386000.png)