k8s 部署 custom-metrics-apiserver 时使用 secret 保存 ca 证书遇到的问题

部署 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 就成功启动了,问题就解决了。

posted @ 2020-01-13 23:33  dudu  阅读(...)  评论(...编辑  收藏