Cannot access `istio-ingressgateway` when install istio on GKE

Hi I’m trying to install istio on my GKE (Google Kubernetes Engine)

I have done the following step

  • enable istio when create cluster. Here is the verifcation when run kubectl get deployment,svc -n istio-system
kubectl get deployment,svc -n istio-system
NAME                                           READY   UP-TO-DATE   AVAILABLE   AGE
deployment.extensions/cluster-local-gateway    1/1     1            1           5d21h
deployment.extensions/istio-citadel            1/1     1            1           5d22h
deployment.extensions/istio-galley             1/1     1            1           5d22h
deployment.extensions/istio-ingressgateway     1/1     1            1           5d22h
deployment.extensions/istio-pilot              1/1     1            1           5d22h
deployment.extensions/istio-policy             1/1     1            1           5d22h
deployment.extensions/istio-sidecar-injector   1/1     1            1           5d22h
deployment.extensions/istio-telemetry          1/1     1            1           5d22h
deployment.extensions/promsd                   1/1     1            1           5d22h

NAME                             TYPE           CLUSTER-IP    EXTERNAL-IP   PORT(S)                                                                                                                                      AGE
service/cluster-local-gateway    ClusterIP      10.0.1.88     <none>        80/TCP,443/TCP,31400/TCP,15011/TCP,8060/TCP,15030/TCP,15031/TCP                                                                              5d21h
service/istio-citadel            ClusterIP      10.0.13.49    <none>        8060/TCP,15014/TCP                                                                                                                           5d21h
service/istio-galley             ClusterIP      10.0.13.164   <none>        443/TCP,15014/TCP,9901/TCP                                                                                                                   5d21h
service/istio-ingressgateway     LoadBalancer   10.0.7.201    34.87.63.90   15020:30780/TCP,80:31380/TCP,443:31390/TCP,31400:31400/TCP,15029:32221/TCP,15030:31217/TCP,15031:32218/TCP,15032:31962/TCP,15443:32139/TCP   5d21h
service/istio-pilot              ClusterIP      10.0.11.239   <none>        15010/TCP,15011/TCP,8080/TCP,15014/TCP                                                                                                       5d21h
service/istio-policy             ClusterIP      10.0.3.193    <none>        9091/TCP,15004/TCP,15014/TCP                                                                                                                 5d21h
service/istio-sidecar-injector   ClusterIP      10.0.9.213    <none>        443/TCP                                                                                                                                      5d21h
service/istio-telemetry          ClusterIP      10.0.3.90     <none>        9091/TCP,15004/TCP,15014/TCP,42422/TCP                                                                                                       5d21h
service/promsd                   ClusterIP      10.0.3.213    <none>        9090/TCP                                                                                                                                     5d21h
  • enable sidecar injection for my project namespace Here is output when run kubectl get namespace -L istio-injection
kubectl get namespace -L istio-injection
NAME              STATUS   AGE     ISTIO-INJECTION
default           Active   5d22h   enabled
ingress-nginx     Active   2d23h
istio-system      Active   5d22h   disabled
knative-serving   Active   5d22h
kube-public       Active   5d22h
kube-system       Active   5d22h
timeline          Active   5d20h   enabled
  • restart timeline namespace service so that injection is enabled Here is output when run kubectl get pod -n timeline
kubectl get pod -n timeline
NAME                        READY   STATUS    RESTARTS   AGE
postgres-569db64f87-qwr82   2/2     Running   0          2d
prisma-5748bc8d8-729zq      2/2     Running   0          2d
prisma-5748bc8d8-kqqr9      2/2     Running   0          2d
prisma-5748bc8d8-r5cg2      2/2     Running   0          2d
redis-7df9bc8655-2tjck      2/2     Running   0          2d
redis-7df9bc8655-pvsrp      2/2     Running   0          2d
redis-7df9bc8655-vc6d8      2/2     Running   0          2d
timeline-779d79d4ff-gm4db   2/2     Running   0          2d
timeline-779d79d4ff-jg5zg   2/2     Running   0          2d
timeline-779d79d4ff-q5s9d   2/2     Running   0          2d
  • setup gateway using
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: timeline-gateway
  namespace: timeline
spec:
  selector:
    app: timelline
    stage: production
    istio: ingressgateway # use istio default controller
  servers:
    - port:
        number: 80
        name: http
        protocol: HTTP
      hosts:
        - "*"
  • setup virtualservice using
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: timeline-virtualservice
  namespace: timeline
spec:
  hosts:
    - "*"
  gateways:
    - timeline-gateway
  http:
    - route:
        - destination:
            host: timeline
            port:
              number: 4000

bellow is my timeline namespace deployment and service when run kubectl get deployment,svc -n timeline

kubectl get deployment,svc -n timeline
NAME                             READY   UP-TO-DATE   AVAILABLE   AGE
deployment.extensions/postgres   1/1     1            1           4d10h
deployment.extensions/prisma     3/3     3            3           4d10h
deployment.extensions/redis      3/3     3            3           4d10h
deployment.extensions/timeline   3/3     3            3           4d10h

NAME               TYPE       CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
service/postgres   NodePort   10.0.15.150   <none>        5432:30714/TCP   4d10h
service/prisma     NodePort   10.0.8.32     <none>        4466:30480/TCP   4d10h
service/redis      NodePort   10.0.0.119    <none>        6379:31032/TCP   4d10h
service/timeline   NodePort   10.0.7.225    <none>        4000:31890/TCP   4d4h

The problem is i cannot access istio-ingressgateway always return cannot be found page . I have verify my timeline service working with ngix-ingress-controller` (see bellow image)

enter image description here

What is wrong with my setup? how can we make istio work? Thanks!

i listed down all my deployment and service in all namespace bellow

kubectl get deployment,svc --all-namespaces
NAMESPACE         NAME                                                             READY   UP-TO-DATE   AVAILABLE   AGE
ingress-nginx     deployment.extensions/nginx-ingress-controller                   1/1     1            1           2d23h
istio-system      deployment.extensions/cluster-local-gateway                      1/1     1            1           5d22h
istio-system      deployment.extensions/istio-citadel                              1/1     1            1           5d22h
istio-system      deployment.extensions/istio-galley                               1/1     1            1           5d22h
istio-system      deployment.extensions/istio-ingressgateway                       1/1     1            1           5d22h
istio-system      deployment.extensions/istio-pilot                                1/1     1            1           5d22h
istio-system      deployment.extensions/istio-policy                               1/1     1            1           5d22h
istio-system      deployment.extensions/istio-sidecar-injector                     1/1     1            1           5d22h
istio-system      deployment.extensions/istio-telemetry                            1/1     1            1           5d22h
istio-system      deployment.extensions/promsd                                     1/1     1            1           5d22h
knative-serving   deployment.extensions/activator                                  1/1     1            1           5d22h
knative-serving   deployment.extensions/autoscaler                                 1/1     1            1           5d22h
knative-serving   deployment.extensions/cloudrun-controller                        1/1     1            1           5d22h
knative-serving   deployment.extensions/controller                                 1/1     1            1           5d22h
knative-serving   deployment.extensions/networking-istio                           1/1     1            1           5d22h
knative-serving   deployment.extensions/webhook                                    1/1     1            1           5d22h
kube-system       deployment.extensions/event-exporter-v0.2.5                      1/1     1            1           5d22h
kube-system       deployment.extensions/fluentd-gcp-scaler                         1/1     1            1           5d22h
kube-system       deployment.extensions/heapster-v1.6.1                            1/1     1            1           5d22h
kube-system       deployment.extensions/kube-dns                                   2/2     2            2           5d22h
kube-system       deployment.extensions/kube-dns-autoscaler                        1/1     1            1           5d22h
kube-system       deployment.extensions/l7-default-backend                         1/1     1            1           5d22h
kube-system       deployment.extensions/metrics-server-v0.3.1                      1/1     1            1           5d22h
kube-system       deployment.extensions/stackdriver-metadata-agent-cluster-level   1/1     1            1           5d22h
kube-system       deployment.extensions/tiller-deploy                              1/1     1            1           3d21h
timeline          deployment.extensions/postgres                                   1/1     1            1           4d11h
timeline          deployment.extensions/prisma                                     3/3     3            3           4d11h
timeline          deployment.extensions/redis                                      3/3     3            3           4d10h
timeline          deployment.extensions/timeline                                   3/3     3            3           4d10h

NAMESPACE         NAME                             TYPE           CLUSTER-IP    EXTERNAL-IP      PORT(S)                                                                                                                                      AGE
default           service/kubernetes               ClusterIP      10.0.0.1      <none>           443/TCP                                                                                                                                      5d22h
ingress-nginx     service/ingress-nginx            LoadBalancer   10.0.7.136    35.240.157.212   80:32456/TCP,443:30484/TCP                                                                                                                   2d23h
istio-system      service/cluster-local-gateway    ClusterIP      10.0.1.88     <none>           80/TCP,443/TCP,31400/TCP,15011/TCP,8060/TCP,15030/TCP,15031/TCP                                                                              5d22h
istio-system      service/istio-citadel            ClusterIP      10.0.13.49    <none>           8060/TCP,15014/TCP                                                                                                                           5d22h
istio-system      service/istio-galley             ClusterIP      10.0.13.164   <none>           443/TCP,15014/TCP,9901/TCP                                                                                                                   5d22h
istio-system      service/istio-ingressgateway     LoadBalancer   10.0.7.201    34.87.63.90      15020:30780/TCP,80:31380/TCP,443:31390/TCP,31400:31400/TCP,15029:32221/TCP,15030:31217/TCP,15031:32218/TCP,15032:31962/TCP,15443:32139/TCP   5d22h
istio-system      service/istio-pilot              ClusterIP      10.0.11.239   <none>           15010/TCP,15011/TCP,8080/TCP,15014/TCP                                                                                                       5d22h
istio-system      service/istio-policy             ClusterIP      10.0.3.193    <none>           9091/TCP,15004/TCP,15014/TCP                                                                                                                 5d22h
istio-system      service/istio-sidecar-injector   ClusterIP      10.0.9.213    <none>           443/TCP                                                                                                                                      5d22h
istio-system      service/istio-telemetry          ClusterIP      10.0.3.90     <none>           9091/TCP,15004/TCP,15014/TCP,42422/TCP                                                                                                       5d22h
istio-system      service/promsd                   ClusterIP      10.0.3.213    <none>           9090/TCP                                                                                                                                     5d22h
knative-serving   service/activator-service        ClusterIP      10.0.0.5      <none>           80/TCP,81/TCP,9090/TCP                                                                                                                       5d22h
knative-serving   service/autoscaler               ClusterIP      10.0.12.217   <none>           8080/TCP,9090/TCP                                                                                                                            5d22h
knative-serving   service/controller               ClusterIP      10.0.13.31    <none>           9090/TCP                                                                                                                                     5d22h
knative-serving   service/webhook                  ClusterIP      10.0.2.121    <none>           443/TCP                                                                                                                                      5d22h
kube-system       service/default-http-backend     NodePort       10.0.15.7     <none>           80:30617/TCP                                                                                                                                 5d22h
kube-system       service/heapster                 ClusterIP      10.0.6.253    <none>           80/TCP                                                                                                                                       5d22h
kube-system       service/kube-dns                 ClusterIP      10.0.0.10     <none>           53/UDP,53/TCP                                                                                                                                5d22h
kube-system       service/metrics-server           ClusterIP      10.0.8.76     <none>           443/TCP                                                                                                                                      5d22h
kube-system       service/tiller-deploy            ClusterIP      10.0.3.125    <none>           44134/TCP                                                                                                                                    3d21h
timeline          service/postgres                 NodePort       10.0.15.150   <none>           5432:30714/TCP                                                                                                                               4d11h
timeline          service/prisma                   NodePort       10.0.8.32     <none>           4466:30480/TCP                                                                                                                               4d10h
timeline          service/redis                    NodePort       10.0.0.119    <none>           6379:31032/TCP                                                                                                                               4d10h
timeline          service/timeline                 NodePort       10.0.7.225    <none>           4000:31890/TCP