Kubernetes 使用带有TCP协议的出口网关执行TLS发起
我的用例如下:我希望在172.28.0.3:389中拦截对LDAP的调用,并使用TLS转发到172.28.0.3:636 我遵循了的步骤,它工作得很好。现在我正在尝试使用网关,不幸的是,我在设置端口时遇到了问题。我基本上复制并粘贴了HTTP和HTTPS到TCP以及端口80和443到389和636的设置,并修改了协议:Kubernetes 使用带有TCP协议的出口网关执行TLS发起,kubernetes,ldap,tls1.2,istio,Kubernetes,Ldap,Tls1.2,Istio,我的用例如下:我希望在172.28.0.3:389中拦截对LDAP的调用,并使用TLS转发到172.28.0.3:636 我遵循了的步骤,它工作得很好。现在我正在尝试使用网关,不幸的是,我在设置端口时遇到了问题。我基本上复制并粘贴了HTTP和HTTPS到TCP以及端口80和443到389和636的设置,并修改了协议: apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: na
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: cnn
spec:
hosts:
- ldap.host
addresses:
- 172.28.0.3
ports:
- number: 389
name: tcp
protocol: TCP
- number: 636
name: tcp-secure
protocol: TCP
resolution: STATIC
endpoints:
- address: 172.28.0.3
------
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: istio-egressgateway
spec:
selector:
istio: egressgateway
servers:
- port:
number: 389 # I am not sure about this
name: tpc-port-for-tls-origination
protocol: tcp
hosts:
- ldap.host
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: egressgateway-for-cnn
spec:
host: istio-egressgateway.istio-system.svc.cluster.local
subsets:
- name: cnn
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: direct-cnn-through-egress-gateway
spec:
hosts:
- ldap.host
gateways:
- istio-egressgateway
- mesh
tcp: # I AM NOT SURE ABOUT THIS PART
- match:
- gateways:
- mesh
port: 389
route:
- destination:
host: istio-egressgateway.istio-system.svc.cluster.local
subset: cnn
port:
number: 389
weight: 100
- match:
- gateways:
- istio-egressgateway
port: 389
route:
- destination:
host: ldap.host
port:
number: 636
weight: 100
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: originate-tls-for-edition-cnn-com
spec:
host: ldap.host
trafficPolicy:
loadBalancer:
simple: ROUND_ROBIN
portLevelSettings:
- port:
number: 636
tls:
mode: SIMPLE # initiates HTTPS for connections to edition.cnn.com
我觉得问题出在
VirtualService
上,但是我尝试了很多方法,但都没有成功,如果有任何提示可能会出现问题,我将不胜感激。查看本文和前一篇文章:看起来您对支持LDAP集成的外部提供商感兴趣。例如,您可以使用
本文档显示了一个外部身份验证,它可以是。请注意,文件可能已过时(2018年2月)
您可以在这里找到: 据我所知,LDAP不在中工作。 这里的解决办法是要么 您可以将两者都集成到istio中,但这只是为了进行身份验证,它不会像LDAP本身那样工作,至少据我所知
您还可以使用JSON Web令牌(JWT)验证进行可扩展身份验证。Istio负责验证传入用户请求中的JWT令牌。因此,如果您实现了Istio JWT身份验证功能,您的应用程序代码就不需要担心JWT令牌验证。我会为你做的。不是JWT令牌生成。Istio不会为您生成代币。您必须拥有生成令牌的身份验证微服务。
线程是关于如何使用JWT对最终用户进行身份验证的。您在日志中看到了什么?在调试这类东西时,我通常会检查发出请求的侧车的访问日志和出口网关中的访问日志:这会让您了解哪个组件会给您带来问题。不幸的是,我还不能帮助解决这个具体问题,我在设置出口网关方面也很新:)@Mark谢谢你的回答,在我之前的问题()中,我必须在吊舱内安装证书,但这似乎是错误的,您知道有没有一种方法可以使用caCertificates,而不用将它们部署在应用程序pod中?谢谢您的回复,但在我的情况下,我已经配置了Key斗篷,我已经使用Key斗篷配置了LDAP,我只想将LDAP的自定义证书从Key斗篷pod移动到istio。我想我可以通过出口网关实现这一点。看看TLS起源的出口网关。我还附上一封感谢信:),这正是我所做的,也是我为什么提出这个问题的原因。我已经读了很多东西,但我仍然不知道该在哪里提交证书文件,POD?是什么?代理,我以为是POD,但我错了如果我很了解你的问题,证书应该在目录中:
samples/certs/
。查看更多信息。有一个指南,介绍如何插入现有证书。