如何配置 AKS 群集以使用安装在不同 AKS 群集上的外部保管库的机密

How to configure an AKS cluster to use secrets from external Vault installed on different AKS Cluster

我在 Azure AKS 上有两个 kubernetes 集群 运行。

我已经根据以下官方文档在 HA 模式下安装了带有 Consul 的 Hashicorp Vault。安装成功。

https://learn.hashicorp.com/tutorials/vault/kubernetes-minikube?in=vault/kubernetes

但是我完全不知道如何从另一个集群连接和检索 Vault 集群中的机密。我想为我的应用程序集群使用 Vault 的 sidecar 注入方法来与 Vault 集群通信。我尝试按照以下官方文档中的步骤操作,但在文档中使用了 minikube 而不是 public 云 Kubernetes 服务。如何像 minikube 文档中描述的那样为 AKS 定义“EXTERNAL_VAULT_ADDR”变量?是我可以从 Azure 门户获取的 api 服务器 DNS 地址吗?

https://learn.hashicorp.com/tutorials/vault/kubernetes-external-vault?in=vault/kubernetes

您与 Vault 交互的方式是通过 HTTP(s) API。这意味着您需要使用一种常用方法在 Vault-Cluster 集群中公开 vault 服务 运行。

例如,您可以:

  • 使用 LoadBalancer 类型的服务(之所以有效,是因为您是支持此功能的云提供商中的 运行 kubernetes);
  • 安装一个 ingress controller,公开它(再次使用负载平衡器)并为您的 vault 服务定义一个 Ingress 资源。
  • 使用 node port 服务

EXTERNAL_VAULT_ADDR 值取决于您要使用的策略。