部署 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 就成功啟動了,問題就解決了。