2.5. 配置 GitOps 受管资源以使用挂载的 secret


您必须通过将卷挂载配置添加到部署,并将容器 pod 配置为使用挂载的 secret 来配置 GitOps 管理的资源。

先决条件

  • 您有 AWS Secrets Manager 资源存储在 GitOps 存储库中。
  • 您已将 Secret Store Container Storage Interface (SSCSI)驱动程序配置为从 AWS Secret Manager 挂载 secret。

流程

  1. 配置 GitOps 受管资源。例如,请考虑将卷挂载配置添加到 app-taxi 应用的部署中,且 100-deployment.yaml 文件位于 /environments/dev/apps/app-taxi/services/taxi/base/config/ 目录中。

    1. 将卷挂载添加到部署 YAML 文件中,并将容器 pod 配置为使用 secret 供应商类资源和挂载的 secret:

      YAML 文件示例

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: taxi
        namespace: dev 1
      spec:
        replicas: 1
        template:
          metadata:
      # ...
          spec:
            containers:
              - image: nginxinc/nginx-unprivileged:latest
                imagePullPolicy: Always
                name: taxi
                ports:
                  - containerPort: 8080
                volumeMounts:
                  - name: secrets-store-inline
                    mountPath: "/mnt/secrets-store" 2
                    readOnly: true
                resources: {}
          serviceAccountName: default
          volumes:
            - name: secrets-store-inline
              csi:
                driver: secrets-store.csi.k8s.io
                readOnly: true
                volumeAttributes:
                  secretProviderClass: "my-aws-provider" 3
          status: {}
      # ...

      1
      部署的命名空间。这必须与 secret 供应商类相同。
      2
      在卷挂载中挂载 secret 的路径。
      3
      secret 供应商类的名称。
    2. 将更新的资源 YAML 文件推送到 GitOps 存储库。
  2. 在 Argo CD UI 中,点目标应用程序页面中的 REFRESH 以应用更新的部署清单。
  3. 验证目标应用程序页面中都已成功同步所有资源。
  4. 验证您是否可以从 pod 卷挂载中的 AWS Secret Manager 访问 secret:

    1. 列出 pod 挂载中的 secret:

      $ oc exec <deployment_name>-<hash> -n <namespace> -- ls /mnt/secrets-store/

      示例命令

      $ oc exec taxi-5959644f9-t847m -n dev -- ls /mnt/secrets-store/

      输出示例

      <secret_name>

    2. 查看 pod 挂载中的 secret:

      $ oc exec <deployment_name>-<hash> -n <namespace> -- cat /mnt/secrets-store/<secret_name>

      示例命令

      $ oc exec taxi-5959644f9-t847m -n dev -- cat /mnt/secrets-store/testSecret

      输出示例

      <secret_value>

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.