当在Kubernetes上运行Metricbeat时,遇到了无法获取节点信息的问题

目标版本

Kubernetes 1.16.2
Metricbeat 7.5.0

Kubernetes 1.16.2
拓展与管理容器化应用的平台
Metricbeat 7.5.0

调查

根据调查结果,端口10255已被禁用。
需要使用端口10250。我们需要改变设置。

据说从Kubernetes 1.11开始,认证不需要的外部协作端口10255在kubeadm执行时默认会被禁用,发生了这个变化。

在AWS EKS上查询http://${NODE_NAME}:10250/stats/summary时,[Metricbeat] – kubernetes metricsets会出现”连接被拒绝”的错误。

对应

原状态

  kubernetes.yml: |-
    - module: kubernetes
      metricsets:
        - node
        - system
        - pod
        - container
        - volume
      period: 10s
      host: ${NODE_NAME}
      hosts: ["localhost:10255"]
      # If using Red Hat OpenShift remove the previous hosts entry and 
      # uncomment these settings:
      #hosts: ["https://${HOSTNAME}:10250"]
      #bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token

变更后:
– 将 “hosts: [“localhost:10255″]” 注释掉
– 取消对 “hosts: [“https://${HOSTNAME}:10250″]” 的注释
– 取消对 “bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token” 的注释
– 添加 “ssl.verification_mode: none”
– 添加以下代码

      processors:
        - add_kubernetes_metadata:
            in_cluster: true
  kubernetes.yml: |-
    - module: kubernetes
      metricsets:
        - node
        - system
        - pod
        - container
        - volume
      period: 10s
      host: ${NODE_NAME}
      #hosts: ["localhost:10255"]
      # If using Red Hat OpenShift remove the previous hosts entry and 
      # uncomment these settings:
      hosts: ["https://${HOSTNAME}:10250"]
      ssl.verification_mode: none
      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
      processors:
      - add_kubernetes_metadata:
          in_cluster: true
bannerAds