我有nodeJs应用程序和docker文件部署在AKS和HelmChart中,我有azure key vault和azure Portal中一些密钥,我需要将我运行POD和KeyVault连接起来。
现有答案的另一种选择(我认为现有答案是可行的)是使用AAD Pod标识。 基本上,这是一种让您在pod内拥有应用程序标识的方式。 通过这种方式,您不必对身份进行微观管理,也不必向应用程序传递凭据(只需使用内部端点)。 类似于Kubernetes之外的Azure中的托管标识。
我用的是AKV2K8S。
Akv2k8s包含两个主要组件:
图表:
在开始安装之前,我建议先阅读一下它的工作原理? 佩奇。
稍后,请按照安装概述页设置环境。
万一你想安装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