pengdott 2024-12-12 13:39 采纳率: 75%
浏览 7
已结题

K8S集群,metrics部署错误

metrics-server pod 部署成功处于running状态,服务也处于running状态

kubectl get pod -n kube-system
NAME                              READY   STATUS    RESTARTS   AGE
metrics-server-56f864bddc-nfg2t   1/1     Running   4          12d

kubectl get svc -n kube-system
NAME             TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                  AGE
metrics-server   ClusterIP   10.96.165.35   <none>        443/TCP                  12d

但是,执行在master节点执行kubectl top pods 报错:
W1212 13:09:35.004801 8720 top_pod.go:140] Using json format to get metrics. Next release will switch to protocol-buffers, switch early by passing --use-protocol-buffers flag
Error from server (ServiceUnavailable): the server is currently unable to handle the request (get pods.metrics.k8s.io)
查询apiserver,发现检查可用性失败

kubectl get apiservices
NAME                                   SERVICE                      AVAILABLE                      AGE
v1beta1.metrics.k8s.io                 kube-system/metrics-server   False (FailedDiscoveryCheck)   12d

查看pod,metrics-server,apiservice, v1.certificates.k8s.io 详细信息未见错误
连接服务地址测试,ping 10.96.165.35通
telnet 10.96.165.35 443不通,所以访问服务地址不通
curl https://10.96.165.35/apis/metrics.k8s.io/v1beta1
只有在metrics pod所在的工作节点执行telnet 10.96.165.35 443可通,请问如何修改,在master节点可以使用kubectl top pods命令

  • 写回答

1条回答 默认 最新

  • 码到π退休 Java领域新星创作者 2024-12-13 11:41
    关注

    本答案参考多次询问ChatGPT-3.5后选择的最佳回答,若是满意,还请采纳,谢谢。

    从您提供的信息来看,问题可能出在 master 节点无法通过 telnet 连接到 metrics-server 的服务地址(10.96.165.35:443),而在 metrics pod 所在的工作节点可以连接。

    以下是一些可能的解决步骤:

    1. 检查 master 节点到 metrics-server 服务的网络连接,确保没有防火墙或网络策略阻止了连接。
    2. 检查 metrics-server 的配置,特别是与服务暴露和访问控制相关的部分,确保 master 节点被正确授权访问该服务。
    3. 确认 metrics-server 服务的证书配置是否正确,因为您在使用 https 进行访问,证书问题可能导致连接失败。
    4. 检查 kube-proxy 的配置,确保其正确地在 master 节点上进行服务发现和路由。

    如果以上步骤没有解决问题,您可能需要进一步查看相关的日志和监控信息,以确定具体的问题所在。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月27日
  • 已采纳回答 12月19日
  • 创建了问题 12月12日