为什么 AzureRmAks 在部署新的 Kubernetes 集群时找不到 SSH 密钥?

Why can't AzureRmAks find SSH key when deploying new Kubernetes cluster?

昨晚我使用 PowerShell 在 AKS 上部署了一个 Kubernetes 集群,如下所示:

New-AzureRmAks -ResourceGroupName "my-rg" -Name "my-aks-cluster" -KubernetesVersion "1.16.13" -NodeCount 2 -NodeVmSize "Standard_DS2_V2" -Verbose

这很好用。然而,今天,我在不同的订阅中尝试了同样的事情,但不断收到以下错误:

VERBOSE: Cluster does not exist.
VERBOSE: Cluster is new.
VERBOSE: Performing the operation "Creating a managed Kubernetes cluster." on target "my-aks-cluster in my-rg".
VERBOSE: Preparing for deployment of your managed Kubernetes cluster.
VERBOSE: Using location eastus from the resource group my-rg.
VERBOSE: Using DNS name prefix my-aks-cluster-my-rg-dcdf2a.
VERBOSE: Fetching SSH public key from file C:\Users\myuser\.ssh\id_rsa.pub
New-AzureRmAks : The given key was not present in the dictionary.
At line:1 char:1
+ New-AzureRmAks -ResourceGroupName "my-reg" -Name "my-aks-cluster" -Kube ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [New-AzureRmAks], KeyNotFoundException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Aks.NewAzureRmAks

我很困惑,因为:

  1. 同样的命令在之前起作用
  2. 我对新订阅的管理权限与之前使用的管理权限相同
  3. 密钥路径有效
  4. 密钥 id_rsa.pub 位于列出的路径中

有人知道这里发生了什么吗?如有任何提示,我们将不胜感激。

当我只更改到另一个目录中的新订阅时,我可以使用相同的用户帐户重现此问题。

要修复它,您可以删除所有文件,但将 TokenCache.dat 文件留在路径 .Azure 文件夹中

C:\Users\myuser\.Azure

然后re-connect订阅。

编辑

在这种情况下,删除本地.azure目录下的文件acsServicePrincipal即可解决此问题。