具有静态IP和自定义证书/ AKS入口问题的AKS

时间:2018-12-27 09:30:58

标签: azure kubernetes kubernetes-ingress azure-aks

好吧,在过去的两天里,我与这份文档进行了战斗:

https://docs.microsoft.com/en-au/azure/aks/static-iphttps://docs.microsoft.com/en-au/azure/aks/ingress-own-tls

首先,我确保将aks k8s集群升级到1.11.5,因此毫无疑问将静态IP放在其他资源组中。

总的来说,我无法使静态IP真正起作用。使用动态,一切听起来不错,但是我无法为动态IP添加A记录。

我设法成功部署了所有内容,但是任何curl ip ..无法正常工作。我确实在本地运行exec -ti,并且在本地一切都很好。

有人可以将我指向运行此配置的GitHub配置或文章吗?作为免责声明,我非常了解azure,因此很好地完成了服务主体分配,等等。但是,我是新来的,在k8上只有几个月。

预先感谢您的任何建议。

如果需要,我可以共享日志,但是我确实检查了从dns到入口路由的所有内容。我担心这个文档不好,只是在浪费时间。

2 个答案:

答案 0 :(得分:0)

经过一段漫长的旅程后,为自己解答这个问题,因为当我长大而忘记了所做的事情,也许我的侄子有一天会节省一些时间。

  1. 首先,很重要:

在提供给nginx-ingress图表模板的值中,有2个重要的注释:

service.beta.kubernetes.io/azure-load-balancer-resource-group:“您IP的资源组” externalTrafficPolicy:“本地”

这里记录了所有值:https://github.com/helm/charts/blob/master/stable/nginx-ingress/values.yaml

该图表可以部署在您的服务的名称空间附近,它不应该位于kube系统中(据我目前的知识,我找不到在系统中包含它的理由)。

  1. 第二,可能会引起误解

从IP出现在kubectl get services --watch到curl -i IP能够接听电话的那一刻之间,大约有30多秒的延迟(在我的情况下)。因此,如果您具有自动化或运行状况探测器,请确保您有1-2分钟的等待时间。或者选择更好的节点,裸机。

  1. 在GCE和DO上进行以下设置可能会有所帮助: https://cloud.google.com/community/tutorials/nginx-ingress-gke https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on-digitalocean-kubernetes DO的员工也很出色。

祝你好运!

答案 1 :(得分:0)

根据您的评论,您似乎正在尝试覆盖externalIPs,但使用controller.service.type的头盔图表的默认值为LoadBalancer。您可能想要做的是将controller.service.type设置为LoadBalancer,并用静态IP设置controller.service.loadBalancerIP而不是覆盖externalIPs

这里有documentation from microsoft