2

我正在尝试通过 terraform 使用应用程序网关入口控制器部署 AKS。为此,我创建了应用程序网关、AKS(也启用了入口控制器设置),然后使用 kind=ingress 部署了 YAML 文件。

  1. 现在,第一次创建应用程序网关时,它正在使用我在 terraform 脚本中提供的名称创建后端池(比如说 terraform-b​​ackend-pool)。所以这里的后端池 = terraform-b​​ackend-pool

  2. 然后,当我部署入口 Yaml 文件时,入口控制器(defaultaddresspool 和 pool-default-xxxx-service)将早期的后端池替换为两个新的后端池。所以这里的后端池 = defaultaddresspool 和 pool-default-xxxx-service

  3. 当第二次执行相同的 terraform 脚本时,我的担忧就开始了。由于后端池与脚本不同,它会删除它们并创建脚本中提到的一个,因此我的服务无法正常工作。所以这里后端池 = terraform-b​​ackend-pool再次。

  4. 我想到的一种解决方法是再次删除入口 YAML 并在 CICD 进程中再次部署它。但这不是实用的方法,所以需要建议我如何避免更新后端池。

与后端池一起,路由规则也以类似的方式更新。

我还想过通过 AKS 入口选项创建应用程序网关,而不是单独创建它,但通过此选项它正在创建 standard_V2 应用程序网关,我计划启用 WAF 应用程序网关。

4

1 回答 1

0

我的解决方法

ingress_pods=`kubectl -n kube-system  get pod  | awk '{if ($1 ~ "ingress-appgw-deployment-") print $1}'`
kubectl -n kube-system delete pod $ingress_pods
于 2021-10-05T13:30:09.517 回答