k8s 部署 custom-metrics-apiserver 時使用 secret 儲存 ca 證書遇到的問題

dudu發表於2020-01-13

部署 k8s-prometheus-adapter 的 custom-metrics-apiserver 時,pod 總是啟動失敗,對應的錯誤日誌:

unable to install resource metrics API: unable to load server certificate: open /var/run/serving-cert/serving.crt: no such file or directory

kubectl edit secret cm-adapter-serving-certs -n monitoring 檢視 secret 中的配置資料

data:
  tls.crt: ******
  tls.key: ******
kind: Secret

發現配置名稱是 tls.crt 與 tls.key ,而 custom-metrics-apiserver pod 用到的是 serving.crt 與 serving.key 。

當時建立 secret 的命令用的是 tls 引數。

kubectl -n monitoring create secret tls cm-adapter-serving-certs --cert=./serving.crt --key=./serving.key

改為 generic 引數建立 secret 。

kubectl -n monitoring create secret generic cm-adapter-serving-certs --from-file=./serving.crt --from-file=./serving.key 

secret 的配置名稱變成 serving.crt 與 serving.key 。

data:
  serving.crt: ******
  serving.key: ******
kind: Secret

custom-metrics-apiserver pod 就成功啟動了,問題就解決了。

相關文章