我使用“创建Kubernetes群集”功能在Azure门户中创建了AKS群集,并允许它创建新的服务主体。
我开始怀疑此委托人使用的凭证是否过期。为了避免K8s在凭据到期时与Azure进行对话,我开始查看已创建的帐户。
如果我跑步,我会看到什么:
az ad app show --id <app Id>
...是除密码有效期以外的帐户清单。我不需要密码本身,只要密码过期即可。
passwordCredentials ,但是,它是一个空数组。
我希望找到的是 startDate 和 endDate 属性,就像我创建自己的帐户一样。
此处描述的PasswordCredential类:
当AKS群集创建其服务主体凭据时,它的创建过程是否有所不同,这意味着它们不会过期?我只是不允许看到细节吗?有我误解的基本知识吗?
答案 0 :(得分:0)
首先,我需要对您引用的 passwordCredentials 进行解释。它是有关“应用程序注册”密钥的属性。创建AKS群集时,没有创建任何密钥,因此 passwordCredentials 显示为空。如果您在“应用程序注册”中创建密钥,它将显示如下:
此外,当您部署AKS群集时,密码将永不过期。但请放心,您可以在设置中为“应用注册”创建密钥,并为其指定有效时间。还可以重置时间和密钥密码。
但是,使用CLI命令az ad sp credential reset
重设密码时,请务必小心。此命令将覆盖所有密钥,而不是仅重置到期时间和密码。这意味着为您创建一个新密钥并删除之前创建的所有密钥,或者仅使用参数--append
创建一个新密钥。
您可以查看文档Azure Kubernetes Service (AKS) with Azure AD。希望对您有帮助。
答案 1 :(得分:0)
遇到了与AKS相同的服务原则到期问题。
作为一种快速的解决方法,使用Azure门户创建了新密钥,并使用新的客户端密钥手动更新了所有AKS节点(/etc/kubernetes/azure.json)并重新启动了一个主节点,此外,主节点未使用新的client_secret(明显)。因此,新扩展的节点提出了过期的客户端密码!!(问题)
2019年3月31日,得到了Azure支持的答复,即他们正在azure cli中添加新选项来更新服务主体。
2019年1月31日刚刚升级了我的Azure CLI来检查新功能,幸运的是它在那里并更新了我的测试群集及其作品!
az aks update-credentials --reset-service-principal --service-principal <client-id> --client-secret <secret>
注意:客户端ID和客户端秘密应由您创建
基本上,它会更新所有节点上的/etc/kubernetes/azure.json文件,然后一步一步地重新启动它!
也尝试过扩大规模,并且有效!