AKS配置AGIC

时间:2023-02-23 16:18:39

前面给大家介绍了Azure Kubernetes Services中的Ingress选项,那么接下来我们主要以Application Gateway Ingress Controller展开来和大家进行介绍。

在早期的版本中,如果我们想要对Azure Kubernetes配置Application Gateway Ingress Controller只能通过Helm的方式进行部署,而且在部署之前,还需要手动的去设置相关的权限,整套部署流程走下来是相当的麻烦,同时也容易在部署的过程中出现错误。那为了避免这些问题。微软将Application Gateway Ingress Controller变成了AKS的addons之一,也就意味它比通过 Helm 部署要简单得多。 若要进行新的设置,在 Azure CLI 中通过一行内容即可部署新应用程序网关和将 AGIC 作为加载项启用的新 AKS 群集。 该加载项也是一项完全托管的服务,这提供了一些额外的优势,例如自动更新和更多的支持。。

综上所述可以看出,目前Azure Kubernetes上安装Application Gateway Ingress Controller的方式主有两种,分别为使用Helm和addons安装,而需要注意的是,两者之间还是有些差异的,具体如下:

  • 目前的addons版本不支持与其他服务共用一个Application Gateway,因为addons不能配置ProhibitedTargets,但是在Helm中,我们可以通过在Helm中设置appgw.shared=true加上ProhibitedTargets CRD的yaml设置,来让同一个Application Gateway可以同时给AKS和VM等服务来使用
  • 由于 AGIC 加载项是一种托管服务,因此客户的 AGIC 加载项将自动更新为最新版本,不像通过 Helm 部署的 AGIC,客户必须手动更新 AGIC
  • 无法在 AKS 加载项上修改 Helm 部署值:
  • verbosityLevel 默认设置为 5
  • usePrivateIp 默认设置为 false,但可由 use-private-ip annotation 重写此项
  • 加载项不支持 shared
  • 加载项不支持 reconcilePeriodSeconds
  • 加载项不支持 armAuth.type

了解了AGIC的部署方式以后,接下来我们就一起来看下,对我们的AKS群集启用AGIC。我们今天主要会以addons的方式来进行配置,感兴趣的小伙伴可以自行看下Helm的配置方式。

我们可以在创建群集时就对AKS群集配置启用AGIC,也可以在群集创建以后,通过GUI界面或CLI对AKS群集inx更新来启用AGIC,具体如何操作,加下来我们就一起来看一下

在创建群集时启用AGIC

在使用CLI创建AKS群集时,可以通过命令指定AGIC的名字和所在子网,具体图下所示:

az aks create -n myCluster -g myResourceGroup --network-plugin azure --enable-managed-identity -a ingress-appgw --appgw-name myApplicationGateway --appgw-subnet-prefix "10.2.0.0/16" --generate-ssh-keys
在已有群集中启用AGIC

在已经部署好的AKS群集,我们可以通过GUI界面或CLI命令来启用AGIC,具体如下所示:

GUI界面启用AGIC

登录到Azure Portal,导航到我们现有的AKS群集,点击网络:

AKS配置AGIC

可以通过勾选”启用入口控制器“来启用AGIC,是不是非常的简单:

AKS配置AGIC


CLI启用AGIC

使用CLI的场景下,我们需要先让见Application Gateway,对于Gateway的创建,我们在此就不做演示了。

创建好Applicaiton Gateway以后,我们需要获取Application Gateway ID,然后使用 az aks enable-addons来更新群集启用AGIC,具体如下所示:

appgwId=$(az network application-gateway show -n myApplicationGateway -g myResourceGroup -o tsv --query "id")  

az aks enable-addons -n myCluster -g myResourceGroup -a ingress-appgw --appgw-id $appgwId

到这里就给大家介绍了如何在创建AKS群集时启用AGIC以及如何对现有的AKS群集启用AGIC,在后续的blog中我们将带着大家看下如何使用AGIC发布我们的应用程序。