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»