kubernetes - 如何在一个入口 Controller 中实现多个服务?他们在文档中给出的一个是无法理解的

标签 kubernetes kubernetes-ingress nginx-ingress

我创建了一个服务,每个服务都在创建一个新的负载均衡器,我不想为每个服务创建一个新的负载均衡器。为此,我找到了解决方案入口 Controller ,但它没有发生。

最佳答案

我会尝试用简单的文字描述您需要的对象。

您无需为每个服务创建负载均衡器。当您使用入口 Controller (如 nginx)时,入口 Controller 本身将是负载均衡器类型。所有其他服务都需要类似于 ClusterIP 类型。

之后,您可以决定如何将 ClusterIP 服务与 Nginx LoadBalancer 链接:为每个服务创建一个入口,或者根据某种规则创建一个公开每个服务的入口(如上面帖子中 @harsh-manvar 所示的路径)。

当您说“这没有发生”时,如果您能提供有关您的设置的详细信息,那就太好了。

为了使 Nginx 入口 Controller 正常工作,需要将其定义为 NodePort 或 LoadBalancer 服务类型。 nginx 文档中提供的示例使用 LoadBalancer。但是,LoadBalancer 仅在您的集群支持此对象时才起作用(这意味着在大多数云提供商中运行,例如 AWS/GCP/Azure/DigitalOcean 或较新版本的 minikube)。另一方面,NodePort 将在其运行的 Kubernetes 节点上公开入口 Controller (使用 minikube 时,这通常意味着某种 VM,然后需要进行端口转发才能访问)。

要在本地环境中使用 ingress,您可以查看 minikube。您所需要做的就是运行 minikube addons enable ingress ,它会为您部署一个 nginx Controller 。之后,您需要做的就是定义一个入口,根据您的设置,您可能需要使用 kubectl port-forward 将 nginx Controller pod 上的端口 80 端口转发到您计算机上的本地端口。

关于kubernetes - 如何在一个入口 Controller 中实现多个服务?他们在文档中给出的一个是无法理解的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55822679/

相关文章:

nginx - 在 GKE 上使用 nginx 入口 Controller 时负载均衡器的节点不健康

kubernetes - 获取Kubernetes入口端点/IP地址

networking - 通过外部网络架构在裸机集群上公开 Kubernetes 服务

Kubernetes Ingress 未重定向到正确的路径

apache-kafka - kafka statefulset 的 readinessProbe (k8s) 导致部署错误

kubernetes - Istio 导出流量不通过 istio istio-proxy sidecar 路由

kubernetes - 如何使用 nginx-ingress 代理_pass?

Kubernetes 入口 Controller 找不到 TLS 证书 key

kubernetes - Calico 等待 etcd 报错 Kubespray

kubernetes - 如何对 Kubernetes 服务的请求使用 session 亲和性?