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

K8S裸机nginx入口控制器

许马鲁
2023-03-14

操作html" target="_blank">系统:RHEL7|k8s版本:1.12/13|kubes祈祷|裸机

我部署了一个标准的kubespray裸机集群,我正在尝试了解部署nginx ingress controller的最简单推荐方法是什么,它将允许我部署简单的服务。没有提供负载平衡器。我希望我的主公共IP作为我的服务的endpoint。

Github k8s ingress nginx建议将节点端口服务作为“强制”步骤,这似乎不足以使其与kubespray的ingress\u控制器一起工作。

我能够通过kubectl edit svc强制LoadBalancer服务类型并将externalIP值设置为nginx ingress controller中的主公共IP,但由于缺少负载平衡器本身,这似乎不是一个正确的解决方案。

使用helm图表的类似结果:

helm install -n ingress-nginx stable/nginx-ingress --set controller.service.externalIPs[0]="MASTER PUBLIC IP"

共有1个答案

柳俊逸
2023-03-14

我能够通过kubectl edit svc强制LoadBalancer服务类型并将externalIP值设置为nginx入口控制器中的主公共IP,但由于缺少负载平衡器本身,这似乎不是一个正确的解决方案。

正确,这不是LoadBalancer的用途。它旨在为AWS、GCP或Azure等云提供商提供负载平衡器,或者为具有某种API的负载平衡器提供负载平衡器,以便kube controller manager可以与之交互。如果查看kube controller manager日志,您应该会看到一些错误。你让它工作的方式很明显是一种黑客行为,但我想它是有效的。

实现这一点的标准方法只是使用NodePort服务,并在主服务器上使用任何代理/负载平衡器(即nginx或haproxy)向NodePort发送流量。请注意,我也不建议master来处理您的服务,因为它已经处理了一些关键的Kubernetes吊舱,如kube controller manager、kube apiserver、kube scheduler等。

唯一的例外是MetalLB,您可以将其与LoadBalancer服务类型一起使用。请记住,在撰写本文时,该项目仍处于早期阶段。

 类似资料:
  • null 有关编写入口规则的完整文档 我可以为每个后端单独配置SSL证书(在端口443上)吗? 是/主机的总括“路径”吗? 有没有一个基本控制器映像可以覆盖由API服务器的入口更改填充的nginx.conf模板?

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

  • 我正在运行一个kubernetes集群,它由三个节点组成,工作出色,但现在是时候让我的Web应用程序安全了,所以我部署了一个入口控制器(traefik)。但是我找不到在上面设置https的说明。我知道我必须做的大部分事情,比如设置“秘密”(带有证书的容器)等,但我想知道如何配置我的入口控制器和与之相关的所有文件,以便我能够使用安全连接 我已经配置了入口控制器,并创建了一些前端和后端。此外,我还配置

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

  • 我正在AWS EKS上设置NGINX入口控制器。 我浏览了k8s入口资源,它非常有助于理解我们将LB端口映射到k8s服务端口,例如file Def。我安装了nginx控制器,直到必要的步骤。然后教程指示我创建一个入口资源。 我错过了什么?