提问者:小点点

如何连接Azure-key-vault与AKS Pod?


我有nodeJs应用程序和docker文件部署在AKS和HelmChart中,我有azure key vault和azure Portal中一些密钥,我需要将我运行POD和KeyVault连接起来。


共2个答案

匿名用户

现有答案的另一种选择(我认为现有答案是可行的)是使用AAD Pod标识。 基本上,这是一种让您在pod内拥有应用程序标识的方式。 通过这种方式,您不必对身份进行微观管理,也不必向应用程序传递凭据(只需使用内部端点)。 类似于Kubernetes之外的Azure中的托管标识。

匿名用户

我用的是AKV2K8S。

Akv2k8s包含两个主要组件:

  1. akv2k8s控制器将Azure密钥存储库对象作为native Secret的对象同步到Kubernetes
  2. akv2k8s注入器将Azure密钥存储库对象作为环境变量直接注入应用程序。

图表:

在开始安装之前,我建议先阅读一下它的工作原理? 佩奇。

稍后,请按照安装概述页设置环境。

万一你想安装akv2k8s与头盔。 我为我的ci\cd进程创建了以下代码片段:

# Create a dedicated namespace for akv2k8s
kubectl create ns akv2k8s

# Add Helm repository
helm repo add spv-charts http://charts.spvapi.no
helm repo update

# Install the Controller (and the "AzureKeyVaultSecret" CRD)
helm install azure-key-vault-controller spv-charts/azure-key-vault-controller --namespace akv2k8s

# Install the Env-Injector
helm install azure-key-vault-env-injector spv-charts/azure-key-vault-env-injector --set installCrd=false --namespace akv2k8s

简单示例:

cat << EOF | kubectl apply -f -
apiVersion: spv.no/v1alpha1
kind: AzureKeyVaultSecret
metadata:
  name: secret-sync 
  namespace: $(K8S_NAMESPACE)
spec:
  vault:
    name: ${KEY_VAULT_NAME} # name of key vault
    object:
      name: $(KEY_VALUT_OBJECT_NAME)  # name of the akv object
      type: $(KEY_VALUT_TYPE) # akv object type
EOF