如何在Kubernetes之外配置Prometheus-弹性KubernetesService



我需要帮助在EKS集群之外配置普罗米修斯?

我所做的:

  1. 创建了一个EKS集群
  2. 将普罗米修斯安装在EKS之外的EC2中
  3. 添加了具有EKS对EC2的完全访问权限的IAM Role。(能够从aws-cli访问群集(
  4. 已配置aws-auth配置映射以包括上述IAM角色,可以使用
    curl -k https://kubeapi-url/healthz --header "Authorization: Bearer $TOKEN"获取带有IAM角色令牌的EKS的/healthz

问题:
默认情况下,代币的到期时间为15分钟(出于安全原因,我不需要更改(。因此,我不能直接在prometheus.yml配置中使用此令牌。

我需要什么:

  1. 如何在没有Token和Kuectl的情况下访问EKS
  2. 如何配置prometheus.yml使其自动获取令牌就像EKS的Kubeconfig文件使用
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
args:
- --region
- ap-south-1
- eks
- get-token
- --cluster-name
- eks-cluster-name
command: aws
  1. 或者有没有其他方法可以在没有kubernetes令牌的情况下配置Prometheus

(非常感谢普罗米修斯的配置以及我对EKS的要求。(

仅针对第二个问题:

由于您有一个自动更新的Kubeconfig文件,因此在prometheus.yml配置文件中您可以直接使用它。

# Optional path to a kubeconfig file.
# Note that api_server and kube_config are mutually exclusive.
[ kubeconfig_file: <filename> ]

不确定这对你的案子有用。

不是确切的答案,但您可以使用普罗米修斯联盟。

  1. 使用默认配置在集群内设置Prometheus,它会自动抓取所有内容。不需要太多配置
  2. 在EC2 Box上设置prometheus,并使用这里提到的联邦配置
scrape_configs:
- job_name: 'federate'
scrape_interval: 15s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job="prometheus"}'
- '{__name__=~"job:.*"}'
static_configs:
- targets:
- '<k8s-prometheus-endpoint>'
- '<someother-prometheus-endpoint>'

不会使用任何令牌,因此相对而言更安全。全部使用k8s服务帐户和联盟。消耗更多的资源,但我们仍然可以获得某种HA。

优化:您可以减少k8s普罗米修斯中1-2天的数据(取决于具体情况(,并在EC2普罗米修斯中将数据保存更长时间。

相关内容

  • 没有找到相关文章

最新更新