当前位置: 首页 > 知识库问答 >
问题:

为什么nginx入口控制器部署为容器(pod)?

吕文林
2023-03-14

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

所以2个问题,

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

谢啦!

共有2个答案

马丰
2023-03-14

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

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

上官正志
2023-03-14

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

可以将Nginx控制器作为在库伯内特斯中设置的守护程序运行,但我不确定在节点上运行。

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

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

如果您想在内部使用Nginx进程创建自己的AMI并在Node池中使用它并扩展该池,这是可能的,但操作系统修补和维护怎么样?

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

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

尽管如此,根据需要,您可以使用HPA运行多个副本或手动增加副本以获得高可用性。

 类似资料:
  • 我知道,当我们想用一个负载平衡器/公共IP公开多个服务/路由时,可以使用入口。 现在我想公开我的Nginx服务器。我有两个选择 设置瞧,我得到了公共IP 使用Nginx入口控制器 现在我可以用选项1完成我的工作了,我什么时候或者为什么要选择选项2?使用带有入口的nginx而不使用入口有什么好处?

  • 操作系统:RHEL7|k8s版本:1.12/13|kubes祈祷|裸机 我部署了一个标准的kubespray裸机集群,我正在尝试了解部署nginx ingress controller的最简单推荐方法是什么,它将允许我部署简单的服务。没有提供负载平衡器。我希望我的主公共IP作为我的服务的endpoint。 Github k8s ingress nginx建议将节点端口服务作为“强制”步骤,这似乎不

  • 我在RedHat EC2实例上安装了Minikube v1.3.1以进行一些测试。 由于nginx-ingress-控制器默认使用的端口已经在使用中,我正在尝试在部署中更改它们,但没有结果。有人能建议如何做吗? 如何知道端口已在使用? 当我使用命令kubectl-n kube system get deployment | grep nginx列出系统吊舱时,我得到: nginx入口控制器0/1

  • 在AWS控制台中创建ALB规则时,是否有入口控制器在后台运行? 当学习ALB入口控制器时,我有点困惑。我以为这只是对AWS中ALB服务的API调用。但是讲师似乎安装了一个aws入口控制器。然后编写规则来重定向到节点端口服务的路径。 与在AWS控制台中创建和通过kubernets集群进行创建相比,有什么不同。 这是正在安装的控制器。 https://github.com/kubernetes-sig

  • 我基本上希望通过URL从外部访问Nginx hello页面。我已经为运行kubernetes和Nginx ingress:vps的v服务器的子域创建了一个(工作)a记录。我的域名。通用域名格式 我使用以下教程在CoreOS上通过kubeadm将Kubernetes安装为单节点集群:https://kubernetes.io/docs/setup/independent/install-kubead

  • 我试图创建一个入口控制器,它指向我通过Nodeport公开的服务。 以下是入口控制器的yaml文件(摘自https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/):