【问题标题】:use managed identity to access azure keyvault in kubernetes cluster which is hosted on azure使用托管标识访问托管在 azure 上的 kubernetes 集群中的 azure keyvault
【发布时间】:2020-06-02 13:27:42
【问题描述】:

我知道通过 Azure Kubernetes 服务,我们可以使用托管标识来访问 azure 资源,例如 keyvault。但我正在尝试了解是否可以将相同的过程应用于托管在 azure 上的 kubernetes 集群。我的目标是让 kubernetes 集群在 azure 中具有 2 个工作节点和 2 个控制器节点,但驻留在这些节点上的 pod 应该使用类似于 AKS 的托管标识方法访问 azure keyvault。无论如何,我们可以在没有在应用程序中编码的情况下做到这一点吗?

我知道这个问题的范围很大,但是如果有人提供任何高级步骤真的很有帮助吗?

谢谢, 桑托什

【问题讨论】:

  • 将托管标识直接分配给 pod 是一个附加组件,此处:github.com/Azure/aad-pod-identity#getting-started
  • @DavidBrowne-Microsoft,我尝试了上述解决方案,但 mic pod 没有启动,因为“无法获取 MIC 客户端:读取 /etc/kubernetes/azure.json:是一个目录”错误。确实在作为目录的工作节点上。因为我创建了一个没有 aks 和 aks 引擎的集群,所以该文件是手动创建的并保留在那里吗?

标签: azure kubernetes azure-managed-identity


【解决方案1】:

这完全有可能。 AAD Pod identities 依赖 AAD (Azure Active Directory) 及其权限。

最后,AKS 将拥有一个幕后的基础设施。因此,如果您打算不使用 AKS 而是自己安装集群(例如使用 AKS 引擎),则可以使用 AAD Pod Identities / Managed Instances。

您所需要的只是这些机器驻留在“Azure”中并依赖于所谓的Azure Instance Metadata Service (IMDS)。甚至您也可以使用项目ARC 注册来自 Azure 外部的新机器实例。无论如何我不能用托管实例谈论它,因为我没有使用它,无论如何它应该遵循类似的模式。

这里有一篇解释 AAD Pod 身份的好文章:

https://itnext.io/the-right-way-of-accessing-azure-services-from-inside-your-azure-kubernetes-cluster-14a335767680

【讨论】:

  • 嗨,这更集中于 AKS。但我在 azure 上单独安装了集群。
  • 所以你不想使用AD? AAD Pod 身份依赖于 AD 和 Kubernetes(不是 AKS 本身),我认为这就是您所要求的...如果您不想依赖 AD 集成,那是另一个用例。
  • 嗨,我只想使用 AD。但是这里的设置仅在“将 aad-pod-identity 部署到您的集群”步骤中失败。 MIC pod 因“Could not get the MIC client: read /etc/kubernetes/azure.json: is a directory”错误而崩溃。
猜你喜欢
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 2020-10-04
  • 2021-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
相关资源
最近更新 更多