首先,昨天有討論 Yaml 無法直接使用環境變數。如果想要動態的修改 Yaml 的內容,其中一種方法就是使用 yq
這個輕量級的 Yaml 處理工具。
brew install yq
export HOST_PATH=$HOME/kind
yq e '.nodes[].extraMounts[].hostPath = env(HOST_PATH)' kind-config.yaml > kind-config-updated.yaml
再使用 kind-config-updated.yaml
來部署 Cluster,就會是掛載在正確的路徑了。
在使用 hostPath
建立 Kubernetes Cluster 時,我有注意到 kind 也幫我們自動安裝了名為 standard
的 StorageClass。
StorageClass 的主要作用就是讓我們可以在建立 PVC 時,動態的幫助我們配置相對應的 PV。
而這邊這個 standard
StorageClass 是 Rancher 發行的 local-path-provisioner,主要就是用來讓使用者可以透過 Local Storage 來建立 PVC。
從這張圖片可以看到,這個 PVC 的 Reclaim Policy 是 Delete
,這代表當 Reclaim Policy 為 Delete 的 PVC 被刪掉時,會自動將 PV 也一起刪除。如果 PV 裡面有什麼檔案也就會一併被清除。
我們的目標是一鍵完成部署,並且提供持久化的儲存,所以當然不希望使用這種 PVC 來儲存我們的資源。
這時候我想像中是可以透過將 Reclaim Policy 改為 Retain
來避免這樣的情況。
明天將會進行這部分的實驗~