问题描述
我正在为 AKS 集群部署 Nginx 入口控制器,其中我有一个用户节点池和一个系统节点池。
helm install nginx-ingress ingress-Nginx/ingress-Nginx --namespace basic-ingress --set controller.replicaCount=2 --set controller.nodeselector."beta\.kubernetes\.io/os"=linux --set defaultBackend.nodeselector."beta\.kubernetes\.io/os"=linux --set controller.admissionWebhooks.patch.nodeselector."beta\.kubernetes\.io/os"=linux
由于副本数 = 2,当我检查 pod 状态时,我可以看到 1 个 pod 在系统节点池中运行,而 1 个在用户节点池中运行。
问题:
-
我能否在用户节点池中同时运行两个入口副本,如果是,如何运行?
解决方法
首先要看你为什么决定创建多个节点池,用户池中的VM是否有更多资源?是不是因为你想把系统节点池只保留给kubernetes相关的资源?无论如何,Ingress Controller 可以毫无问题地部署在系统池中。
话虽如此,如果您想运行用户节点池中的所有副本,您需要set a label on the node of your node pool,然后在 Nginx 部署上使用 Node Selector。如果您使用 Helm,则可以使用这些值来执行此操作。
将入口放在不同的节点池中不会真的有更多延迟,无论如何,您尝试访问的 pod 并不总是与入口控制器位于同一 VM 中,即使两者都在同一个节点池中。
>