为什么nginxingress控制器被部署为一个容器(pod)



我的自然想法是,如果nginx只是k8s节点上的守护进程,而不是k8s集群中的pod(容器(,看起来它仍然可以填充入口控制器作业。因为:如果它是一个进程,因为它在k8s节点上,它仍然可以与apiserver对话,以获取服务后端pod信息,如IP地址,因此它仍然可以用作http代理服务器,将流量引导到不同的服务。

所以两个问题,

  1. 为什么nginx入口控制器必须是一个pod
  2. 为什么nginxingress控制器只有1个副本?在哪个节点上?如果nginx控制器吊舱死了,事情就会变得不稳定

谢谢!

为什么Nginx入口控制器必须是pod?

可以将Nginx控制器作为Kubernetes中的守护进程集运行,但我不确定是否在节点上运行。

使用守护进程集和Kubernetes的部署来管理POD与Node上的进程相比很容易。

默认情况下,Nginx守护进程不是任何Kubernetes节点的一部分,如果您集群自动缩放,您会在node上手动安装Nginx进程吗?

如果你想在Nginx进程中创建自己的AMI,并在Node池中使用它并扩展该池,这是可能的,但操作系统补丁和维护如何?

为什么nginxingress控制器只有1个副本?在哪个节点上?如果nginx控制器吊舱死了,事情会变得不稳定。

运行复制副本1是默认配置,但您可以实施HPA并根据需要增加复制副本。Nginx是轻量级的,因此处理大量流量不需要更多的副本。

不过,根据需要,您可以使用HPA运行多个副本,或者手动增加副本以获得高可用性。

因为Pods是在Kubernetes中运行守护进程(或者实际上是所有进程(的方式。这就是你做事的方式。我想没有什么可以阻止您在集群外运行它,手动设置API配置和身份验证,自己完成所有需要的网络部分。但是为什么?

对于复制副本,您通常应该在多个物理节点上拥有多个复制副本以实现冗余。很多教程都用replicas: 1展示了它,因为它要么是针对像Minikube这样的单节点开发集群,要么只是一个例子。

最新更新