首页 > 解决方案 > 自动将 imagePullSecrets 添加到 ServiceAccount

问题描述

我们将 ServiceAccounts 用于 RBAC,因此有多个 SA 在起作用,以允许我们通过 RoleBindings 适当地调整访问。

我们还使用私有注册表,因此可以使用 imagePullSecrets 从私有注册表中提取图像。我正在尝试提出一个解决方案,通过该解决方案,在命名空间中创建的所有 SA 默认情况下会获取应用于添加到它们的默认 SA 的 imagePullSecrets 列表,以便在我们部署使用该服务的 Pod 时(通常是正确的在 SA 之后),serviceAccount 已经配置为使用 imagePullSecrets 来检索图像。

有没有人设计出一种优雅的方式来处理这个问题?我确实检查了 pod 是否可以应用多个 serviceAccount - N 用于保存 imageSecrets,1 用于映射到 RBAC。和/或,有人可以提出另一种看待问题的方法吗?

[更新:澄清 - 挑战是在多个服务帐户之间共享一组 imagePullSecrets,最好不要明确需要将它们添加到每个 ServiceAccount 定义中。私有注册表应该被认为类似于 dockerhub:访问注册表的用户通常是为了能够拉取,然后使用用户信息来跟踪谁在拉取图像,并偶尔阻止用户拉取他们不应该访问的图像因为“这东西不适合更广泛的消费”。]

标签: kubernetes

解决方案


正如我在另一个线程中回答的那样:

要轻松地将 imagePullSecrets 添加到 serviceAccount,您可以使用 patch 命令:

kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "mySecret"}]}'

推荐阅读