迁移到 Azure Kubernetes 服务 (AKS) 中的密钥管理服务 (KMS) v2

本文将介绍如何将版本为1.27之前的群集迁移到KMS v2。 从 AKS 版本 1.27 开始,启用 KMS 功能将配置 KMS v2。 使用 KMS v2 时,你不受早期版本支持的 2,000 个机密的限制。 有关详细信息,请参阅 KMS v2 改进

重要

如果群集版本低于 1.27,而你已启用 KMS,系统会阻止升级到群集 1.27 或更高版本。

禁用 KMS

  1. 使用 az aks update 命令及其 --disable-azure-keyvault-kms 参数在现有群集上禁用 KMS。

    az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --disable-azure-keyvault-kms
    
  2. 使用 kubectl get secrets 命令更新所有机密,以确保之前创建的机密不再加密。 对于较大的群集,可能需要按命名空间细分机密或创建更新脚本。 如果上一个更新 KMS 命令失败,仍运行以下命令以避免 KMS 插件出现意外状态。

    kubectl get secrets --all-namespaces -o json | kubectl replace -f -
    

升级 AKS 群集并打开 KMS

  1. 使用命令 az aks upgrade,并将参数 --kubernetes-version 设置为所需版本,以将 AKS 群集升级到版本 1.27 或更高版本。 以下示例升级到版本 1.27.1

    az aks upgrade --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --kubernetes-version 1.27.1
    
  2. 升级完成后,可以使用以下资源之一为公钥或私钥保管库启用 KMS:

  3. 使用 kubectl get secrets 命令更新所有机密,以确保之前创建的机密不再加密。 对于较大的群集,可能需要按命名空间细分机密或创建更新脚本。 如果上一个更新 KMS 命令失败,仍运行以下命令以避免 KMS 插件出现意外状态。

    kubectl get secrets --all-namespaces -o json | kubectl replace -f -
    

后续步骤

有关将 KMS 与 AKS 配合使用的详细信息,请参阅以下文章: