如何解决带nginx入口控制器的外部服务的K8s服务LB
是否可以将k8s nginx-ingress配置为LB,以使K8s服务主动连接到托管在外部主机/端口上的外部后端(一次启用一次,连接回集群服务)?
类似于特使代理?这是在本地的香草K8上。
因此而不是平衡来自
的负载client -> cluster -> service.
我在寻找
service -> nginx-ingress -> external-backend.
解决方法
在定义入口时,请使用nginx.ingress.kubernetes.io/configuration-snippet
批注。还使用use-proxy-protocol: "true"
启用代理协议。
使用此注释,您可以将其他配置添加到NGINX位置。
请看看:ingress-nginx-issue,advanced-configuration-with-annotations。
,定义没有Service
的Kubernetes selector
。然后,您需要定义一个Endpoint
。您可以将IP和端口放入端点。通常,您不为服务定义端点,但是由于服务没有Selector
,因此您需要提供与服务同名的端点。
然后将Ingress指向服务。
这是一个在群集上公开Ingress并将流量发送到TCP 8081上的192.168.88.1的示例。
apiVersion: v1
kind: Service
metadata:
name: router
namespace: default
spec:
ports:
- protocol: TCP
port: 80
targetPort: 8081
---
apiVersion: v1
kind: Endpoints
metadata:
name: router
namespace: default
subsets:
- addresses:
- ip: 192.168.88.1
- ip: 192.168.88.2 # As per question below
ports:
- port: 8081
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: router
namespace: default
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: my-router.domain.com
http:
paths:
- path: /
backend:
serviceName: router
servicePort: 80
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。