缩放 Azure nginx 入口控制器

Scale Azure nginx ingress controller

我们在 Azure (aks) 上有一个 K8s 集群。在这个集群上,我们在安装 nginx-ingress 控制器的设置上添加了一个负载均衡器。

查看部署:

addon-http-application-routing-default-http-backend       1
addon-http-application-routing-external-dns               1 
addon-http-application-routing-nginx-ingress-controller   1

我看到每个 运行 都有 1 个。现在我发现很少的信息是否应该缩放这些(每个有 1 个 pod),如果应该,如何缩放?

我试过了运行

kubectl scale deployment addon-http-application-routing-nginx-ingress-controller --replicas=3 

暂时将它缩小到 3 pods,但片刻之后,它又缩小了。

再说一次,这些应该缩放吗?为什么?怎么样?

编辑

对于那些像我一样错过它的人:AKS addon-http-application 尚未 准备好投入生产,它可以让您快速设置并开始试验。这就是为什么我无法正确缩放它的原因。

Read more

这通常是您的做法:

$ kubectl scale deployment addon-http-application-routing-nginx-ingress-controller --replicas=3

但是,我怀疑您配置了 HPA,它将根据负载或某些指标扩展 up/down,并将 minReplicas 规格设置为 1。您可以查看:

$ kubectl get hpa
$ kubectl describe hpa <hpa-name>

如果是这种情况,您可以通过修补 HPA 来扩大规模:

$ kubectl patch hpa <hpa-name> -p '{"spec": {"minReplicas": 3}}'

或手动编辑:

$ kubectl edit hpa <hpa-name>

有关 HPA 的更多信息 here

是的,入口控制器应该根据负载进行缩放。

在 AKS 中,作为托管服务,此 "system" 工作负载(如 kube-dns 和入口控制器)由服务本身管理,用户无法修改(因为它们标有addonmanager.kubernetes.io/mode: Reconcile,这会强制当前配置反映 masters /etc/kubernetes/addons 磁盘上的内容。