[K8S] 使用 kubectl 取出儲存在 configmap 中的檔案內容
在找問題時,有時會需要查看儲存在 configmap 中的檔案內容。
平常會用 kubectl get cm -o yaml
的方式,
直接把 configmap 的內容以 yaml 的方式列印出來:
$ kubectl -n app get cm status-cm -o yaml apiVersion: v1 data: dev.json: |- { "es": { "node": "https://eck-es-master.svc.cluster.local:9200", "auth": { "username": "elastic", "password": "***" }, "requestTimeout": 120000, "maxRetries": 3 } } kind: ConfigMap
不過有時會希望把檔案內容直接另存成檔案,
這樣的話上面輸出的 yaml 就有點不太適合 (因為還有前方的空格),
這時可以用 -jsonpath
的方式指定要讀取的值,
像是要讀取 data 下面的 dev.json 的話,可以這樣下
(dev.json 裡的 .
需要用 \
來 escape):
kubectl -n app get cm status-cm -o jsonpath='{.data.dev\.json}'
這樣就能取出完整的檔案內容了:
{ "es": { "node": "https://eck-es-master.svc.cluster.local:9200", "auth": { "username": "elastic", "password": "***" }, "requestTimeout": 120000, "maxRetries": 3 } }
參考資料:kubernetes – How to save content of a configmap to a file with kubectl and jsonpath?
(本頁面已被瀏覽過 131 次)