我跟着这个https://kubernetes.github.io/ingress-nginx/deploy/ 并且部署's in the generic cloud ingress controller (That should create an ingress controller pod, an L7 Nginx LB deployment and service in the cluster, and expose it on nodeports so you'具有NodePort 32080和32443的大部分内容(注意它们实际上是随机的,但这更容易遵循)) (因为你're working on bare metal I don' t相信它能够为你自动生成并配置L4负载均衡器 . )
3 回答
使用NodePort进行服务
创建类型为NodePort的服务,Service可以在每个节点上侦听TCP / UDP端口30000-32767 . 默认情况下,您不能简单地选择在节点上的端口80上公开服务 .
容器映像gcr.io/google_containers/proxy-to-service:v2是一个非常小的容器,可以为您进行端口转发 . 您可以使用它将pod端口或主机端口转发到服务 . Pod可以选择任何端口或主机端口,并且不受服务的限制 .
Ingress
如果有多个服务共享具有不同主机/路径的相同TCP端口,请部署NGINX Ingress Controller,它将侦听HTTP 80和HTTPS 443 .
创建入口,将流量转发到指定的服务 .
如果我打算在我的家庭网络上这样做,我会这样做:
在我的路由器上配置2端口转发规则,将流量重定向到充当L4负载均衡器的nginx框 .
所以如果我的路由器IP是1.2.3.4而我的自定义L4 nginx LB是192.168.1.200
然后我告诉我的路由器向前移动:
1.2.3.4:80 - > 192.168.1.200:80
1.2.3.4:443 - > 192.168.1.200:443
我跟着这个https://kubernetes.github.io/ingress-nginx/deploy/
并且部署's in the generic cloud ingress controller (That should create an ingress controller pod, an L7 Nginx LB deployment and service in the cluster, and expose it on nodeports so you'具有NodePort 32080和32443的大部分内容(注意它们实际上是随机的,但这更容易遵循))
(因为你're working on bare metal I don' t相信它能够为你自动生成并配置L4负载均衡器 . )
然后,我将手动配置L4负载均衡器以对正在进行的流量进行负载均衡
端口80 ---> NodePort 32080
端口443 ---> NodePort 32443
因此,在做什么的大图和以下链接之间你应该是好的 .
https://kubernetes.github.io/ingress-nginx/deploy/baremetal/
(顺便说一下,这将让您继续使用入口控制器配置入口)
注意:我打算在几个月内在家里的衣柜里安装一个裸机群,所以让我知道它是怎么回事!
如果您只有一个节点将入口控制器部署为具有主机端口80的守护进程 . 请勿为其部署服务
如果你有多个节点;对于 Cloud 提供商,负载均衡器是集群外部的构造,它基本上是在某些端口上运行服务的pod的每个节点的HA代理 . 您可以手动执行此类操作,对于要将集合类型暴露给NodePort的任何服务,允许范围内的某个端口(30k中的某个位置),并将具有TCP balancer 器的另一个VM(例如nginx)旋转到所有节点在那个港口 . 您将只能运行与该服务的节点一样多的pod