如果我理解正确,您正在寻找的是出口网关。
这是从Istio documentation配置外部HTTPS代理的教程的一部分:
配置到外部HTTPS代理的流量
- 为HTTPS代理定义一个TCP(不是HTTP!)服务条目。尽管应用程序使用HTTP CONNECT方法与HTTPS代理建立连接,但是您必须为TCP流量而不是HTTP配置代理。建立连接后,代理将简单地充当TCP隧道。
$ kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: proxy
spec:
hosts:
- my-company-proxy.com # ignored
addresses:
- $PROXY_IP/32
ports:
- number: $PROXY_PORT
name: tcp
protocol: TCP
location: MESH_EXTERNAL
EOF
- 从默认名称空间中的sleep pod发送请求。由于睡眠舱具有侧车,因此Istio可以控制其交通。
$ kubectl exec -it $SOURCE_POD -c sleep -- sh -c "HTTPS_PROXY=$PROXY_IP:$PROXY_PORT curl https://en.wikipedia.org/wiki/Main_Page" | grep -o "<title>.*</title>"
<title>Wikipedia,the free encyclopedia</title>
- 检查Istio Sidecar代理的日志以获取您的请求:
$ kubectl logs $SOURCE_POD -c istio-proxy
[2018-12-07T10:38:02.841Z] "- - -" 0 - 702 87599 92 - "-" "-" "-" "-" "172.30.109.95:3128" outbound|3128||my-company-proxy.com 172.30.230.52:44478 172.30.109.95:3128 172.30.230.52:44476 -
- 检查代理的访问日志以获取您的请求:
$ kubectl exec -it $(kubectl get pod -n external -l app=squid -o jsonpath={.items..metadata.name}) -n external -- tail -f /var/log/squid/access.log
1544160065.248 228 172.30.109.89 TCP_TUNNEL/200 87633 CONNECT en.wikipedia.org:443 - HIER_DIRECT/91.198.174.192 -
查看整个教程,因为它涵盖了设置要求,并且具有模拟外部代理的步骤,因此您可以比较它是否按预期工作。
istio.io/docs/tasks/traffic-management/egress/http-proxy/
本文链接:https://www.f2er.com/3151894.html