1.4.2.5. 删除了对 Microsoft Azure 的 mint 凭证的支持
从 OpenShift Container Platform 4.6.57 开始,在 Microsoft Azure 集群上以 mint 模式使用 Cloud Credential Operator(CCO)的支持已从 OpenShift Container Platform 4.6 中删除。此更改的原因是 Microsoft 的 Azure AD Graph API 将于 2022 年 6 月 30 日停用,并被向后移植到 z-stream 更新中所有支持的 OpenShift Container Platform 版本。
对于在以前安装的使用 mint 模式的 Azure 集群,CCO 会尝试更新现有的 secret。如果 secret 包含之前 minted 应用程序注册服务主体的凭证,则会使用 kube-system/azure-credentials
中的 secret 的内容更新。这个行为和 passthrough 模式类似。
对于将凭证模式设置为默认值 ""
的集群,更新的 CCO 会自动从 mint 模式运行,以 passthrough 模式运行。如果您的集群将凭证模式明确设置为 mint 模式("Mint"
),则必须将值改为 ""
或 "Passthrough"
。
除了 mint 模式所需的 Contributor
角色外,修改后的应用程序注册服务主体现在还需要用于 passthrough 模式的 User Access Administrator
角色。
虽然 Azure AD Graph API 仍然可用,但升级版 OpenShift Container Platform 的 CCO 会尝试清理之前 mint 的应用注册服务主体。在 Azure AD Graph API 之前升级集群可能会避免需要手动清理资源。
如果在 Azure AD Graph API 停用后,集群被升级到一个不再支持 mint 模式的 OpenShift Container Platform 版本,CCO 会在关联的 CredentialsRequest
上设置 OrphanedCloudResource
条件,但不会将相关错误视为是致命(fatal)错误。该条件包括与 unable to clean up App Registration / Service Principal: <app_registration_name>
类似的消息。在 Azure AD Graph API 停用后,清理需要使用 Azure CLI 工具或 Azure Web 控制台手动删除剩余的应用程序注册服务主体。
要手动清理资源,您必须找到并删除受影响的资源。
使用 Azure CLI 工具,通过运行以下命令从
OrphanedCloudResource
条件消息过滤使用<app_registration_name>
的应用程序注册服务主体:$ az ad app list --filter "displayname eq '<app_registration_name>'" --query '[].objectId'
输出示例
[ "038c2538-7c40-49f5-abe5-f59c59c29244" ]
运行以下命令来删除应用程序注册服务主体:
$ az ad app delete --id 038c2538-7c40-49f5-abe5-f59c59c29244
在手动清理资源后,OrphanedCloudResource
条件会保留,因为 CCO 无法验证资源是否已清理。