AKS 创建的服务主体密码过期

AKS Created Service Principal Password Expiry

我使用 'Create Kubernetes cluster' 功能在 Azure 门户中创建了我的 AKS 集群,并允许它创建一个新的服务主体。
我开始怀疑这位校长使用的凭据是否已过期。为了避免 K8s 在凭据过期时与 Azure 通信时出现问题,我开始查看已创建的帐户。

如果我 运行:

我会看到什么
az ad app show --id <app Id>

... 是除密码到期之外的帐户清单。我不需要看到密码本身,只需要在它过期时看到它。

passwordCredentials,然而,是一个空数组。

我期望找到的是 startDateendDate 属性,就像我为自己创建的帐户所做的那样。

此处描述的 PasswordCredential class:

https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.management.graph.rbac.fluent.models.passwordcredential?view=azure-dotnet

AKS 群集创建过程在创建其服务主体凭据时是否做了一些不同的事情,这意味着它们不会过期?我只是不允许看到细节吗?我误解了一些基本的东西吗?

首先,我需要对您引用的passwordCredentials做一个解释。它是关于应用程序注册密钥的 属性。当您创建 AKS 群集时,没有创建密钥,因此 passwordCredentials 显示为空。如果您在应用注册中创建密钥,它将显示如下:

此外,当您部署 AKS 群集时,密码将永不过期。不过不用担心,您可以在设置中创建应用程序注册密钥并为其指定过期时间。也可以重置时间和密钥密码。

但是使用 CLI 命令重置密码时要小心 az ad sp credential reset。此命令将覆盖所有密钥,而不仅仅是重置到期时间和密码。这意味着为您创建一个新密钥并删除之前创建的所有密钥,或者只使用参数 --append.

创建一个新密钥

你可以看看文档Azure Kubernetes Service (AKS) with Azure AD。希望对您有所帮助。

遇到了 AKS 的相同服务原则到期问题。

作为一种快速解决方法,使用 Azure 门户创建了新密钥并使用新的客户端密钥手动更新了所有 AKS 节点(/etc/kubernetes/azure.json)并一个接一个地重新启动,而且主节点不是更新了新的 client_secret(很明显)。因此,新扩展的节点会出现过期的客户端密钥!!(问题)

30.01.2019 收到 Azure 支持的回复,他们正在 azure cli 中添加新选项以更新服务主体。

31.01.2019 刚刚升级了我的 Azure CLI 以检查新功能,幸运的是它在那里并更新了我的测试集群及其工作!

az aks update-credentials --reset-service-principal --service-principal <client-id> --client-secret <secret>

注意: client-id 和 client-secret 应该由您创建

它基本上更新了所有节点上的/etc/kubernetes/azure.json文件,然后一个一个地重启它!

也试过按比例放大,效果很好!