kubernetes - 无法从 Prometheus-Adapter 访问默认的 k3s 指标服务器

标签 kubernetes prometheus k3s metrics-server

我已经在端口 443 上安全地安装了 Prometheus-adapter 以及 k3s 附带的默认指标服务器。

不幸的是,当我查询 custom.metrics.k8s.io 时,我没有得到任何资源

$  kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1" | jq .
{
  "kind": "APIResourceList",
  "apiVersion": "v1",
  "groupVersion": "custom.metrics.k8s.io/v1beta1",
  "resources": []
}

当我查看 Prometheus-adapter 的日志时,我得到无法更新所有指标的列表:无法获取查询的指标...:x509:证书对本地主机有效,本地主机,而不是指标服务器.kube-系统

我该如何解决这个问题?

最佳答案

为了解决这个问题,我必须创建 separate certificate对于指标服务器和适配器。适配器还有一个 issue关于添加忽略未合并的证书验证的功能。

对于指标服务器和证书请求,我使用了以下内容:

{
  "hosts": [
    "prometheus-adapter",
    "prometheus-adapter.monitoring",
    "prometheus-adapter.monitoring.svc",
    "prometheus-adapter.monitoring.pod",
    "prometheus-adapter.monitoring.svc.cluster.local",
    "prometheus-adapter.monitoring.pod.cluster.local",
    "<pod ip>",
    "<service ip>"
  ],
  "CN": "prometheus-adapter.monitoring.pod.cluster.local",
  "key": {
    "algo": "ecdsa",
    "size": 256
  },
}

{
  "hosts": [
    "metrics-server",
    "metrics-server.kube-system",
    "metrics-server.kube-system.svc",
    "metrics-server.kube-system.pod",
    "metrics-server.kube-system.svc.cluster.local",
    "metrics-server.kube-system.pod.cluster.local",
    "<service ip>",
    "<pod ip>"
  ],
  "CN": "metrics-server.kube-system",
  "key": {
    "algo": "ecdsa",
    "size": 256
  },
}

对于 ca,您可以按照指示创建证书颁发机构或使用 Kubernetes 签名者 here 此处唯一值得注意的一点是,如果您使用任何一个签名者,您应该自己将 ca 包安装到您的部署中。

最后,将 tls key 和 ca 包安装到您的部署中。

  extraArguments:
    - --tls-cert-file=/var/run/serving-cert/tls.crt
    - --tls-private-key-file=/var/run/serving-cert/tls.key
    - --client-ca-file=/etc/ssl/certs/ca.crt

关于kubernetes - 无法从 Prometheus-Adapter 访问默认的 k3s 指标服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74010952/

相关文章:

kubernetes - 使用 cli 删除 kubernetes 服务目录终结器

nginx - kubernetes nginx入口给出503和404

prometheus - 如何使用普罗米修斯警报管理器抑制营业时间以外的警报?

kubernetes - 在 pi 为零的情况下运行 k3s

kubernetes - PI4 k3s 安装服务器当前无法处理请求

Kubernetes 报告 "pod didn' t 触发扩展(如果添加新节点则不适合)”,即使它会?

kubernetes - 名称在 Kubernetes 中无法使用 docker 解析

amazon-web-services - Grafana 中的 Kubernetes Pod 和节点没有数据点 - Prometheus Dashboard

kubernetes - 如何发现普罗米修斯要抓取的 pod

kubernetes - 在 K3s Kubernetes 中创建 NFS 共享的链接