Kubernetes 入口控制器和入口如何协同工作?
我看不到服务和入口yaml文件之间有任何联系。它是如何联系的,它是如何工作的?我查看了nginx入口控制器,但也找不到入口的任何链接 交通是如何流动的<代码>LB->入口控制器->入口->后端服务->吊舱?似乎只有80和443被允许进入。这是否意味着在Kubernetes 入口控制器和入口如何协同工作?,kubernetes,Kubernetes,我看不到服务和入口yaml文件之间有任何联系。它是如何联系的,它是如何工作的?我查看了nginx入口控制器,但也找不到入口的任何链接 交通是如何流动的LB->入口控制器->入口->后端服务->吊舱?似乎只有80和443被允许进入。这是否意味着在ingres nginx服务上定义的任何自定义端口都通过类似LB->Backend service->pod的方式直接连接到pod 更新:计算出了交通流量。其内容如下: LB->入口控制器->入口->后端服务->吊舱 我有一个带有自定义端口的https虚拟
ingres nginx服务
上定义的任何自定义端口都通过类似LB->Backend service->pod
的方式直接连接到pod
更新:计算出了交通流量。其内容如下:
LB->入口控制器->入口->后端服务->吊舱
我有一个带有自定义端口的https虚拟主机
,我想我需要编辑ingres控制器
yaml文件以允许自定义端口并将自定义端口添加到ingres,它会开始路由吗
ingres.yml:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: test
namespace: test
rules:
- path: /
backend:
serviceName: httpd
servicePort: 443
apiVersion: v1
kind: Service
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
data:
1234: "test-web-dev/httpd:1234"
1235: "test-web-dev/tomcat7:1235"
spec:
externalTrafficPolicy: Local
type: LoadBalancer
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
ports:
- name: http
port: 80
protocol: TCP
targetPort: http
- name: https
port: 443
protocol: TCP
targetPort: https
- name: port-1234
port: 1234
protocol: TCP
targetPort: 1234
- name: port-1235
port: 1235
protocol: TCP
targetPort: 1235
云通用服务。yml:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: test
namespace: test
rules:
- path: /
backend:
serviceName: httpd
servicePort: 443
apiVersion: v1
kind: Service
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
data:
1234: "test-web-dev/httpd:1234"
1235: "test-web-dev/tomcat7:1235"
spec:
externalTrafficPolicy: Local
type: LoadBalancer
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
ports:
- name: http
port: 80
protocol: TCP
targetPort: http
- name: https
port: 443
protocol: TCP
targetPort: https
- name: port-1234
port: 1234
protocol: TCP
targetPort: 1234
- name: port-1235
port: 1235
protocol: TCP
targetPort: 1235
可以找到对此的解释 入口公开从集群外部到集群的HTTP和HTTPS路由 集群内的服务。流量路由由规则控制 在入口资源上定义 入口可以配置为提供外部可访问的服务 URL、负载平衡流量、终止SSL/TLS和提供基于名称的服务 虚拟主机 因此,
ingres
将流量从集群外部路由到您在集群中指定的服务,在您的示例中,httpd
。您可以指定应如何使用流量(nginx入口注释示例)
入口控制器是在集群中运行的应用程序,并且
根据入口资源配置HTTP负载平衡器。这个
负载平衡器可以是在群集中运行的软件负载平衡器
或外部运行的硬件或云负载平衡器。不同的
负载平衡器需要不同的入口控制器实现
对于NGINX,入口控制器与>负载平衡器一起部署在pod中
入口
资源需要存在于集群中。默认情况下,它没有部署到集群中,这就是为什么它必须手动安装的原因。您能告诉我有关流量的信息吗<代码>磅->入口控制器->入口?或LB->入口->入口控制器
?似乎只有80和443被允许进入。ingres nginx
服务上的任何自定义端口都是通过节点端口直接连接到pod的吗?我已经更新了ingres nginx
以显示我定义的自定义端口也更新了问题。请检查并告诉我这是否是您正在寻找的。