Kubernetes и Secrets всегда сложная проблема. Сегодня у меня есть супер простое решение с использованием AWS SSM, которое мы можем использовать во время нашего конвейера CI/CD, чтобы ввести наши секреты в наши услуги. Это так просто и быстро, что вы можете пропустить это, поэтому я доберусь до этого.
Во -первых, войдите в AWS и откройте Systems Manager. Перейдите в магазин параметров и создайте новый параметр. Тип параметра должен быть Securestring , не стесняйтесь назвать это все, что вам нравится; Я люблю ходить с / Анкет Добавьте содержимое Secret.yaml как значение параметра.
apiVersion: v1 kind: Secret metadata: name: wp-secrets namespace: wp-custom-domain data: wordpress_db_password: QXdm .. mRUg=
Во -вторых, перейдите в конфигурацию CI и добавьте следующее в качестве шага перед созданием вашего развертывания Kubernetes.
# create secrets
# /do/k8s/$APP_TYPE/$CI_ENVIRONMENT_NAME
aws ssm get-parameters-by-path \
--path "/${CLOUD_PROVIDER}/k8s/${APP_TYPE}/" \
--query "Parameters[?Name==\`/do/k8s/${APP_TYPE}/${CI_ENVIRONMENT_NAME}\`].Value" \
--with-decryption --output text | kubectl apply -f -
Наконец, настройте спецификацию развертывания, чтобы включить значение секрета, используя Значение от директива.
spec:
containers:
- name: wordpress
image: _/wordpress:5.3.2
env:
- name: WORDPRESS_DB_PASSWORD
valueFrom:
secretKeyRef:
name: wp-secrets
key: wordpress_db_password
Единственное, что вам нужно сделать сейчас, это запустить ваше развертывание CI, и ваши секреты будут доступны в Kubernetes! Видишь, я сказал тебе, что это было просто! Это простой, но эффективный способ внедрить секреты в вашей среде, сохраняя их вне исходного кода.
Оригинал: «https://dev.to/hammotime/the-secret-kubernetes-secrets-and-aws-ssm-9fl»