我正在努力摆脱使用S3存储桶的想法。
从配置中可以看出,我们必须提供S3存储桶的访问权限和密钥,但它们是在可见范围内编写的,并且代码存储在git中,因此任何人都可以访问该存储桶。
有没有办法将它们作为kubernetes的秘密提供?我正在尝试在EKS上运行prometheus-operator
谢谢,
发布于 2020-09-23 21:18:31
假设您想要显式地传递带有auth数据的存储桶配置,那么您可以使用thanos的两个命令行选项来实现此目的:
--objstore.config-file=FILEPATH--objstore.config=CONFIG_CONTENTS使用1。您只需挂载secret并使用2将thanos指向该位置。您可以使用env变量并将secret加载到该变量中,例如:
- args:
- sidecar
(...)
- --objstore.config=$(OBJSTORE_CONFIG)
env:
- name: OBJSTORE_CONFIG
valueFrom:
secretKeyRef:
key: thanos-bucket.yaml
name: thanos-service-account还有一些其他方法可以使用特定于云的身份信息。我对亚马逊网络服务产品不太熟悉,所以我推荐你去thanos docs
发布于 2021-03-25 16:48:04
对于EKS >= 1.13,您可以使用IAM Role for Service Account。它的要点是首先创建一个可以访问EKS的IAM角色,并更新信任策略以信任S3集群的OIDC身份提供者sts:AssumeRoleWithWebIdentity。然后,您可以使用IAM角色(eks.amazonaws.com/role-arn: <IAM_ROLE_ARN>)的ARN在EKS中创建并注释服务帐户,并将此服务帐户分配给您的pod。从今以后,从pod内的SDK到AWS的API调用( SDK必须在凭证链中支持sts:AssumeRoleWithWebIdentity )将在承担IAM角色的情况下完成。
对于普罗米修斯和塔诺斯,您将需要为Prometheus副本pod使用的服务帐户添加注释(对于使用IAM角色的塔诺斯sidecar容器)和塔诺斯存储网关pod。
更多细节可以在AWS official docs中找到。
https://stackoverflow.com/questions/64016099
复制相似问题