共用方式為


AKS Edge Essentials 上的本機路徑布建工具

Azure Kubernetes Service (AKS) Edge Essentials 中執行的應用程式可能需要儲存和擷取資料。 持續性儲存體解決方案可讓您儲存執行應用程式的 Pod 外部的應用程式資料。 持續性儲存體也可讓您維護應用程式資料,即使應用程式的 Pod 失敗也一樣。

本機路徑布建工具提供一種方式,讓 Kubernetes 使用者能夠使用個別節點上的本機儲存體來建立永續性磁片區宣告, 來使用每個節點的本機儲存體。

本文說明如何設定本機路徑布建工具儲存體,並在 AKS Edge Essentials 叢集上部署範例容器。 如需詳細資訊,請參閱 官方本機路徑布建工具檔

步驟 1:安裝必要條件

在提升許可權的 PowerShell 視窗中,執行下列 Cmdlet:

kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/storage/local-path-provisioner/local-path-storage.yaml

警告

Local-Path-ProvisionerBusybox 映射不會由 Microsoft 維護,而且會從 「檔案服務實驗室 」存放庫提取。 Local-Path-ProvisionerBusyBox 只能作為 Linux 容器映射使用。

部署完成後,請執行下列 Cmdlet,確定節點上有可用的 本機路徑 儲存體類別:

kubectl get StorageClass

如果所有專案都已正確設定,您應該會看到下列輸出:

NAME                   PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
local-path (default)   rancher.io/local-path   Delete          WaitForFirstConsumer   false                  21h

步驟 2:建立永續性磁片區宣告 (PV)

第二個步驟是建立永續性磁片區宣告 (PV) 。 有多個可用的設定,但此範例會建立具有 ReadWriteOnce 存取模式的PV,並要求 128 MB 的儲存體。 在提升許可權的 PowerShell 視窗中,執行下列 Cmdlet:

kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/storage/local-path-provisioner/pvc.yaml

步驟 3:部署範例 Pod 並驗證資源

此步驟會部署系結至上一個步驟中所定義之PV 的範例 Pod。 若要部署範例 Pod,請在提升許可權的 PowerShell 視窗中執行下列 Cmdlet:

kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/storage/local-path-provisioner/pod.yaml

如果一切都正在執行並正確附加,您應該會看到類似下列的輸出。 首先,您應該會看到 PV 已建立:

PS C:\WINDOWS\system32> kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                    STORAGECLASS   REASON   AGE
pvc-0f217d0e-1d07-4d9e-91da-6b83534180b9   128Mi      RWO            Delete           Bound    default/local-path-pvc   local-path              16s

接下來,您應該會看到PV 已系結:

PS C:\WINDOWS\system32> kubectl get pvc
NAME             STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
local-path-pvc   Bound    pvc-0f217d0e-1d07-4d9e-91da-6b83534180b9   128Mi      RWO            local-path     118s

最後,您應該會看到執行中的範例 Pod:

PS C:\WINDOWS\system32> kubectl get pod
NAME          READY   STATUS    RESTARTS   AGE
volume-test   1/1     Running   0          2m24s

步驟 4:測試永續性儲存體

最後一項測試是確定儲存體是持續性的,而且即使應用程式的 Pod 失敗,也會維護該資料。

首先,將某個專案寫入 Pod。 在提升許可權的 PowerShell 視窗中,執行下列 Cmdlet:

kubectl exec volume-test -- sh -c "echo Hello AKS Edge! > /data/test"

現在刪除 Pod 以模擬 Pod 失敗,或甚至移除部署:

kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/storage/local-path-provisioner/pod.yaml

檢查 Pod 是否已移除,然後再次部署 磁片區測試 Pod:

kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/storage/local-path-provisioner/pod.yaml

最後,讀取先前寫入之檔案的內容。 如果一切順利執行,您應該會看到 Hello AKS Edge! 訊息。

kubectl exec volume-test -- sh -c "cat /data/test"
Hello AKS Edge!

步驟 5:清除部署

完成本機路徑布建程式之後,請移至 PowerShell 並執行下列命令來清除工作區:

kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/storage/local-path-provisioner/pod.yaml
kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/storage/local-path-provisioner/pvc.yaml

下一步