繁体   English   中英

了解 kubernetes spring boot 应用程序中的采购秘密

Understanding sourcing secrets in kubernetes spring boot app

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在按照本指南使用机密: https : //docs.spring.io/spring-cloud-kubernetes/docs/current/reference/html/index.html#secrets-propertysource

说的很粗略。

  1. 保存秘密

  2. deployment.yml 文件中的引用机密

     containers: - env: - name: DB_USERNAME valueFrom: secretKeyRef: name: db-secret key: username - name: DB_PASSWORD valueFrom: secretKeyRef: name: db-secret key: password
  3. 然后它说“您可以通过多种方式选择要使用的 Secret:”并给出 3 个示例。 但是,如果不执行任何这些步骤,我仍然可以完美地看到我的 env 中的秘密。 此外,第 1 步和第 2 步中的操作独立于 spring boot(将机密保存并移动到环境变量中)

我的问题:

  1. 如果我进行了第 3 步中建议的更改,它会对我的容器/应用程序/pod 进行哪些更改/改进?
  2. 有没有办法避免步骤 1 中的所有映射并将所有机密放入 env 中?
  3. 他们写 -Dspring.cloud.kubernetes.secrets.paths=/etc/secrets 来获取所有秘密,他们怎么知道秘密在名为 /etc/ 的文件夹中
1 个回复

您可以通过以下方式从 secret 挂载所有 env 变量:

      containers:
        - name: app
          envFrom:
          - secretRef:
              name: db-secret

至于 Spring 从哪里获取秘密 - 我不是 Spring 的专家,但您提供的链接中似乎已经有解释:

启用后,Fabric8SecretsPropertySource 从以下来源查找 Kubernetes 的 Secret:

从秘密坐骑递归读取

以应用程序命名(由 spring.application.name 定义)

匹配一些标签

所以它从秘密挂载中获取秘密(如果你将它们作为卷挂载)。 它还扫描 Kubernetes API 中的秘密(我猜在应用程序运行的相同命名空间中)。 它可以通过使用 Kubernetes serviceaccount 令牌来实现,该令牌默认始终挂载到 pod 中。 这取决于 Kubernetes RBAC 权限授予 pod 的 serviceaccount。

因此它尝试使用 Kubernetes API 搜索机密并将它们与应用程序名称或应用程序标签进行匹配。

3 Spring Boot 应用程序无法在 Kubernetes 集群上运行

我正在使用 jhipster 开发具有微服务架构的应用程序。 即使我收到此警告,我也可以在开发模式下运行我的服务,但是当我收到此警告后在 kubernetes 集群上运行它时,pod 会一遍又一遍地重新启动。 我有 4 个微服务和一个网关。 都一样。 提前谢谢你。 这是警告: applica ...

4 Websockets + Spring boot + Kubernetes

我正在创建一个Facebook多人游戏,目前正在评估我的技术堆栈。 我的游戏需要使用websockets,我想使用Spring Boot。 现在,如果websocket服务器在Kubernetes中运行良好,我找不到信息? 例如,如果我在Kubernetes中部署5个服务器实例,那么在 ...

5 使用Kubernetes部署Spring Boot

我正在我工作的项目中开始实施,但是我有一些疑问。 我有一个带有多个概要文件弹簧的项目,对于每个概要文件,我可能希望有一个重复的数量。 例: 开发和暂存(1个副本) 生产(3个副本) 我应该如何处理这种情况,为每个配置文件创建一个部署文件? ...

6 Kubernetes,弹簧靴和微服务

我正在使用Spring Boot和Postgres开发一个微服务应用程序。 使用Docker,一个容器中的REST API和另一个容器中的Postgres,一切正常。 但是当我尝试使用Kubernetes运行它时,它总是会出现API错误。 我定义基于Spring Boot的API的Do ...

9 如何配置此Spring-Boot应用程序以使用IAM角色而不是密钥和机密?

我有一个与S3和SQS通信的Spring Boot应用程序。 使用AWS密钥和机密可以很好地工作,但是我发现我有一个限制,就是我不能使用这些凭据,而必须使用IAM实例角色进行身份验证。 我没有运气使这种轻微的变化起作用。 我创建了一个IAM策略,以允许我的用户访问S3存储桶和SQS ...

10 了解Spring Boot @Autowired

我不明白弹簧靴注释@Autowired如何正常工作的。 这是一个简单的例子: - 当我执行这段代码时,我得到了日志init App和init Starter ,所以spring创建了这个对象。 但是当我从App Starter调用init方法时,我得到一个NullPoin ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM