为什么 Istio Gateway 中的端口字段很重要?

问题描述 投票:0回答:0

最近在学习Istio的Gateway,有一点不太明白

所以当我们安装 istio 时,我们得到 Deployment

istio-ingressgateway
:

$ kubectl get deploy -n istio-system
NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
istio-egressgateway    1/1     1            1           3h9m
istio-ingressgateway   1/1     1            1           3h9m
istiod                 1/1     1            1           3h9m

现在,这个

istio-ingressgateway
通过服务公开:

$ kubectl get svc -n istio-system
NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP                                                              PORT(S)                                                                      AGE
istio-egressgateway    ClusterIP      172.20.33.252   <none>                                                                   80/TCP,443/TCP                                                               3h10m
istio-ingressgateway   LoadBalancer   172.20.19.8     abc-xyz.us-east-1.elb.amazonaws.com   15021:30308/TCP,80:32116/TCP,443:30034/TCP,31400:30430/TCP,15443:30260/TCP   3h10m
istiod                 ClusterIP      172.20.27.14    <none>                                                                   15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3h10m

现在,代理(istio-ingressgateway deployment 的 pod)监听

8080
端口,这是
targetPort
服务中的
80
端口
istio-ingressgateway

现在假设我有以下网关配置:

apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
  name: my-ingress
spec:
  selector:
    app: my-ingressgateway
  servers:
  - port:
      number: 80
      name: http2
      protocol: HTTP2
    hosts:
    - "www.example.com"

我不明白的是,为什么服务器的

port.number
配置很重要,它会影响什么?

我将解释:例如,当我配置一个 EKS 集群并在其上安装 istio 时,我会为该

istio-ingressgateway
服务获得一个 AWS 负载均衡器。负载均衡器的端口之一是端口 80,它将流量转发到节点端口,然后路由到代理容器中的端口 8080:

...
    - name: http2
      nodePort: 32116
      port: 80
      protocol: TCP
      targetPort: 8080
...

所以基本上,当我访问

<load-balancer-domain>:80
时,我被路由到集群节点之一的端口 32116,然后从那里到适当的 pod,所以 pod 甚至不知道我作为客户端曾经到达的端口它。

我的问题是,网关配置“关心”我使用哪个端口到达代理容器?

amazon-web-services kubernetes amazon-eks istio
© www.soinside.com 2019 - 2024. All rights reserved.