微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Thanos S3配置

如何解决Thanos S3配置

我正在努力将S3存储桶用于thanos

从配置中看来,我们必须为S3存储桶提供访问权限和秘密密钥,但是它们是在可见的范围内编写的,并且代码存储在git中,因此任何人都可以访问存储桶。

反正有提供它们作为kubernetes机密吗?我试图在EKS上运行prometheus-operator

谢谢

解决方法

假设您要显式地传递带有auth数据的存储桶配置,则可以为thanos使用两个命令行选项来实现:

  1. --objstore.config-file=FILEPATH
  2. --objstore.config=CONFIG_CONTENTS

使用1.您可以仅安装秘密并将thanos指向该位置 使用2,您可以使用env变量并将secret加载到该变量中,例如:

      - args:
        - sidecar
(...)
        - --objstore.config=$(OBJSTORE_CONFIG)                                                                                                                                                                                                                                   
        env:
        - name: OBJSTORE_CONFIG
          valueFrom:
            secretKeyRef:
              key: thanos-bucket.yaml
              name: thanos-service-account

还有其他一些使用身份信息的方式,这些方式特定于云。我对AWS提供的服务不熟悉,因此请您参考thanos docs

,

对于 EKS >= 1.13,您可以使用 IAM Role for Service Account。其要点是首先创建一个可以访问 S3 存储桶的 IAM 角色,并更新信任策略以信任 EKS 集群的 OIDC 身份提供商 sts:AssumeRoleWithWebIdentity。然后,您在 EKS 中使用 IAM 角色 (eks.amazonaws.com/role-arn: <IAM_ROLE_ARN>) 的 ARN 创建和注释服务账户,并将此服务账户分配给您的 Pod。此后,从 pod 中的 SDK 对 AWS 的 API 调用(SDK 必须支持凭证链中的 sts:AssumeRoleWithWebIdentity)将在承担 IAM 角色的情况下完成。

对于 Prometheus 和 Thanos,您需要注释 Prometheus 副本 pod(对于 Thanos sidecar 容器使用 IAM 角色)和 Thanos 存储网关 pod 使用的服务帐户。

可以在AWS official docs中找到更多详细信息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?