容器启动时缺少其凭据
Symptom
容器运行且应用程序报告密码为空、缺少 API 密钥,或对其依赖的某个服务进行身份验证失败。部署本身看起来是健康的。
Diagnose
- 部署是否仍引用该凭据?
GET /api/v1/deployments/{name}并读取secrets列表。发送更短列表的更新会替换已存储的列表——发送一个字段会直接替换它,而丢失的引用会移除凭据,且不会导致任何失败。参见 发送描述的一部分。 - 路径是否是存储凭据材料的路径?
GET /api/v1/secrets/resources列出了您的租户中引用的所有路径,而GET /api/v1/secrets/resources/{name}/consumers显示了谁读取了每个路径。 - 密钥是否是应用程序期望的密钥? 通过环境变量传递,键名与存储文档中的键名相同。文档中命名不同的键是不同的变量。
- 容器是否在凭据材料存在之前创建的? 值在容器创建时解析,因此之后写入的材料会到达下一个容器,而不是当前这个。

Resolve
Prevent
在发送部分更新之前读取存储的列表,并根据凭据所属的对象命名凭据,这样两个部署就不会最终读取同一个密码的两个副本。