我有一个启用了 AGIC 插件的 AKS,我必须切换到 AGIC 作为舵图(https://learn.microsoft.com/en-us/azure/application-gateway/ingress-controller-install-existing)尝试将两个 AKS 群集连接到单个应用程序网关,但如何更改 AGIC 的设置方式?我虽然运行禁用插件可以解决问题,但是当我尝试应用 helm-config 文件时,我看到了以下错误消息:
Error: INSTALLATION FAILED: Unable to continue with install: IngressClass "azure-application-gateway" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "ingress-azure-1710484411"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "ingress-nginx"
另外,由于某种原因,当我将网关连接到每个 AKS 的服务之一时,我必须手动切换网关的子网路由表,这违背了能够将 2 个 AKS 连接到网关的目的,想知道是否有解决方案这也是或者解决这个问题的方法。谢谢!
从 AGIC 插件过渡到 Helm 管理的 AGIC 涉及多个步骤,因为您需要确保正确清理插件创建的资源或将其转换为由 Helm 管理。您遇到的错误表明在 Helm 安装期间未正确声明或清理现有资源。正如评论中所解释的,
首先,禁用 AGIC 附加组件
二、清理现有资源
确保完全删除该附加组件创建的所有资源。
azure-application-gateway
这包括错误消息提到的IngressClass 。列出 kube-system 命名空间(或相关命名空间,如果 AGIC 部署在其他地方)中的资源,以查看可能与 AGIC 相关的内容。
kubectl get all -n <namespace>
查找名称包含 ingress-appgw 或与应用程序网关或 AGIC 相关的类似标识符的资源。
AGIC 使用 ConfigMaps 进行配置,因此也请检查一下
kubectl get configmaps -n kube-system or if you have any specific namespace
检查 AGIC 特定的服务帐户和角色 -
kubectl get serviceaccounts,roles,rolebindings -n kube-system or any other namespace
并在相应编辑命名空间后删除它们。
清理完成后,您可以使用Helm继续安装 AGIC