kubernetes - 如何公开Nginx入口 Controller [本地基础结构]

标签 kubernetes kubernetes-ingress nginx-ingress

这不仅仅是设计问题,而是问题。我们已经在公司中部署了自己的Kubernetes基础架构,并且尝试使用入口和NGINX入口 Controller 从外部公开我们的服务,但是由于它不是GCP或AWS之类的云环境,因此我们不能使用服务类型“LoadBalancer ”。我们是否应该通过服务类型“NodePort”公开我们的入口 Controller ?这是用于生产环境(非云)的正常方法吗?

根据我在另一个post中阅读的内容,一个合适的建议是使用NodePort,然后将另一个外部负载均衡器手动指向Kubernetes节点上的端口。

似乎通过这种机制公开入口 Controller 在某种程度上不是很实用或不可靠(例如,您不知道服务将分配到哪个端口,并且该端口可能会在某个时候重新分配,等等)。

是否有其他机制可以将入口 Controller 暴露给外部世界?

最佳答案

负载平衡器服务方法是一种实现方法,但其背后仅是集群上的节点端口。

即使您使用在云提供商上创建LB的服务,LB也需要具有目标端 Eloquent 能与集群通信。

当使用主要用于处理Web请求的Nginx入口时,通常将Ingress放在nodeport服务的前面。

因此,我认为使用NodePort服务是您想要做的一个好主意;)

这是我的看法,我对其他人是否有其他方法感兴趣。

关于kubernetes - 如何公开Nginx入口 Controller [本地基础结构],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58286929/

相关文章:

kubernetes - kubelet 服务未启动

networking - GKE 负载均衡器连接被拒绝

ssl - Google 管理的 SSL 证书停留在 "Provisioning"上,域的 FAILED_NOT_VISIBLE

nginx - gke nginx ingress 创建额外的负载均衡器

node.js - 用于负载均衡器类型服务的 Kubernetes SSL

azure - aks 上 azurefile 的 terraform kubernetes_storage_class

使用 GraphQL 的 AKS 上的 Websockets 未连接

kubernetes - 拒绝请求 : rejecting admission review because the request does not contains an Ingress resource but networking. k8s.io/v1

kubernetes - 无法在 ExpressJS 应用程序中的 GKE 上使用ExternalName 连接到数据库

ssl - 带有证书管理器和 SelfSigned ClusterIssuer 的 Kubernetes TLS 入口路由不起作用