这个问题是由于使用Istio Ingress Gateway作为后端时,ALB Ingress Controller不能正确地识别Ingress资源中定义的服务目标所导致的。这将导致所有传入的流量被发送到Istio Ingress Gateway的负载均衡池中,而无法正确路由到所需的服务。
可以通过在Istio网格中创建Kubernetes服务条目来解决此问题,以确保ALB Ingress Controller可以正确地识别目标服务。以下是一个示例:
首先,在Kubernetes活动命名空间中创建一个Istio服务:
apiVersion: v1 kind: Service metadata: name: my-service namespace: istio-system spec: selector: app: my-app ports:
接下来,在Ingress资源中指定上面创建的服务名称:
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: my-ingress annotations: kubernetes.io/ingress.class: alb spec: rules:
在这个示例中,我们使用了ALB Ingress Controller提供的Kubernetes Ingress资源类型,并绑定到了通过Istio创建的实际服务。这样做将确保ALB Ingress Controller可以正确地将入站请求路由到目标服务。