如何通过 helm 从 AGIC Addon 更改为 AGIC?

如何通过 helm 从 AGIC Addon 更改为 AGIC?

我有一个启用了 AGIC 插件的 AKS,我必须切换到 AGIC 作为 Helm Chart(https://learn.microsoft.com/en-us/azure/application-gateway/ingress-controller-install-existing) 尝试将两个 AKS 群集连接到单个应用程序网关,但如何更改 AGIC 的设置方式?我本来以为运行 disable addon 可以解决问题,但当我尝试应用 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 连接到网关的目的,我想知道是否也有解决方案或解决这个问题的方法。谢谢!

答案1

从 AGIC 附加组件过渡到 Helm 管理的 AGIC 涉及几个步骤,因为您需要确保正确清理附加组件创建的资源或将其转换为由 Helm 管理。您遇到的错误表明在 Helm 安装过程中未正确声明或清理现有资源。如评论中所述,

首先,禁用 AGIC 插件

az aks disable-addons --addons ingress-appgw --name MyAKSCluster --resource-group MyResourceGroup

二、清理现有资源

确保插件创建的所有资源都已完全删除。这包括azure-application-gateway错误消息中提到的 IngressClass。

您的问题是:启用 AGIC 插件后,我如何知道创建了哪些资源?

列出 kube-system 命名空间(如果 AGIC 部署在其他地方,则列出相关命名空间)中的资源,以查看可能与 AGIC 相关的资源。

kubectl get all -n <namespace>

查找名称包含 ingress-appgw 或与应用程序网关或 AGIC 相关的类似标识符的资源。

kubectl delete ingressclass azure-application-gateway

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

并在相应地编辑命名空间后删除它们。

kubectl delete deployment <agic-deployment-name> -n kube-system
kubectl delete service <agic-service-name> -n kube-system
kubectl delete configmap <agic-configmap-name> -n kube-system
kubectl delete serviceaccount <agic-serviceaccount-name> -n kube-system
kubectl delete roles,rolebindings <agic-roles-and-rolebindings> -n kube-system

清理完成后,你可以使用以下方法继续安装 AGIC

相关内容