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-Provisioner 和 Busybox 映射不會由 Microsoft 維護,而且會從 「檔案服務實驗室 」存放庫提取。
Local-Path-Provisioner
和 BusyBox
只能作為 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