我有一个带有 Web 应用程序的 AKS 集群。我想配置一个 nginx Ingress 控制器以将应用程序公开到互联网,然后启用 TLS。
我一直在关注官方文档
https://learn.microsoft.com/en-us/azure/aks/ingress-basic https://learn.microsoft.com/en-us/azure/aks/ingress-basic
and
https://learn.microsoft.com/en-us/azure/aks/ingress-static-ip https://learn.microsoft.com/en-us/azure/aks/ingress-static-ip
但我总是以一个待处理的 nginx-ingress 服务结束并出现此错误
reason: SyncLoadBalancerFailed
message: >-
Error syncing load balancer: failed to ensure load balancer: instance not
found
我见过
如何修复 nginx 入口的“无法确保负载均衡器”错误 https://stackoverflow.com/questions/55625051/how-to-fix-failed-to-ensure-load-balancer-error-for-nginx-ingress
并用谷歌搜索了错误,但到目前为止还没有运气
有谁知道它会是什么?
或者,有一些我可以开始的工作示例吗?
我相信您正在使用 NGINX Ingress 控制器服务的静态 IP 地址。如果云控制器管理器在 NGINX 入口控制器的服务注释中提到的包含资源组中找不到静态 Azure 公共 IP 地址资源(如果没有使用服务注释显式指定资源组,它将查找 Azure公共 IP 地址资源位于AKS 群集的节点资源组 https://learn.microsoft.com/en-us/azure/aks/faq#why-are-two-resource-groups-created-with-aks)
如果您已在节点资源组中创建静态 Azure 公共 IP 地址资源,请确保 Azure 公共 IP 地址资源存在。
如果您已在不同的资源组中创建静态 Azure 公共 IP 地址资源,则:
-
请确保 AKS 群集使用的群集标识已将权限委托给其他资源组,例如 Network Contributor。
az role assignment create \
--assignee <Client ID of cluster identity> \
--role "Network Contributor" \
--scope /subscriptions/<subscription id>/resourceGroups/<Public IP address resource group name>
Note:您的集群身份可以是服务主体 https://learn.microsoft.com/en-us/azure/aks/kubernetes-service-principal?tabs=azure-cli or a 管理身份 https://learn.microsoft.com/en-us/azure/aks/use-managed-identity.
-
In the helm install
要部署 NGINX Ingress Controller 的命令,请添加以下参数:
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-resource-group"=$PublicIpAddressResourceGroupName
因此,如果您正在关注这个文件 https://learn.microsoft.com/en-us/azure/aks/ingress-static-ip#ip-and-dns-labelhelm install 命令应该类似于:
# Use Helm to deploy an NGINX ingress controller
helm install nginx-ingress ingress-nginx/ingress-nginx \
--namespace ingress-basic \
--set controller.replicaCount=2 \
--set controller.nodeSelector."kubernetes\.io/os"=linux \
--set controller.image.registry=$ACR_URL \
--set controller.image.image=$CONTROLLER_IMAGE \
--set controller.image.tag=$CONTROLLER_TAG \
--set controller.image.digest="" \
--set controller.admissionWebhooks.patch.nodeSelector."kubernetes\.io/os"=linux \
--set controller.admissionWebhooks.patch.image.registry=$ACR_URL \
--set controller.admissionWebhooks.patch.image.image=$PATCH_IMAGE \
--set controller.admissionWebhooks.patch.image.tag=$PATCH_TAG \
--set defaultBackend.nodeSelector."kubernetes\.io/os"=linux \
--set defaultBackend.image.registry=$ACR_URL \
--set defaultBackend.image.image=$DEFAULTBACKEND_IMAGE \
--set defaultBackend.image.tag=$DEFAULTBACKEND_TAG \
--set controller.service.loadBalancerIP=$STATIC_IP \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-dns-label-name"=$DNS_LABEL
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-resource-group"=$PublicIpAddressResourceGroupName
欲了解更多信息,请查看here https://learn.microsoft.com/en-us/azure/aks/static-ip#create-a-service-using-the-static-ip-address.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)