#prometheus #prometheus-operator #thanos
#prometheus #prometheus-оператор #танос
Вопрос:
Я изо всех сил пытаюсь разобраться в использовании S3 bucket для thanos.
Из конфигурации следует, что мы должны предоставить доступ и секретные ключи для корзины S3, но они записываются на виду, а код хранится в git, поэтому любой может получить доступ к корзине.
Есть ли возможность предоставить их в качестве секретов kubernetes? я пытаюсь запустить prometheus-operator на EKS
Спасибо,
Ответ №1:
Предполагая, что вы хотите явно передать конфигурацию корзины с данными аутентификации, вы можете использовать два параметра командной строки для thanos для достижения этой цели:
--objstore.config-file=FILEPATH
--objstore.config=CONFIG_CONTENTS
С помощью 1. вы можете просто смонтировать secret и указать 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
Ответ №2:
Для EKS> = 1.13 вы можете использовать роль IAM для учетной записи службы. Суть в том, чтобы сначала создать роль IAM с доступом к корзине S3 и обновить политику доверия, чтобы доверять поставщику удостоверений OIDC кластера EKS sts:AssumeRoleWithWebIdentity
. Затем вы создаете и комментируете учетную запись службы в EKS с помощью ARN роли IAM ( eks.amazonaws.com/role-arn: <IAM_ROLE_ARN>
) и назначаете эту учетную запись службы своему pod. Отныне вызовы API в AWS из SDK внутри модуля (SDK должен поддерживаться sts:AssumeRoleWithWebIdentity
в цепочке учетных данных) будут выполняться с предполагаемой ролью IAM.
Для Prometheus и Thanos вам нужно будет аннотировать учетные записи служб, используемые модулями-репликами Prometheus (для контейнера Thanos sidecar для использования роли IAM) и модулями шлюза хранилища Thanos.
Более подробную информацию можно найти в официальных документах AWS.