am new to Istio
Trying to inject istio proxy to a deployed GKE application and expose it through ingress gateway
1.installed istio on GKE
2.deployed nodejs application (responder is a simple node express js application running on port 7001 and returning hello world string on a get call) on GKE
3.tried deploying attached yaml and gateway yamls to inject proxy and expose it through ingress gateway
4.when trying to access it through external ip of istio ingress-gateway, getting 404 not found curl -I http://{GATEWAY_URL}/hw
HTTP/1.1 404 Not Found
x-powered-by: Express
content-security-policy: default-src ‘self’
x-content-type-options: nosniff
content-type: text/html; charset=utf-8
content-length: 142
date: Tue, 23 Apr 2019 13:17:58 GMT
x-envoy-upstream-service-time: 43
server: envoy
Where as able to deploy bookinfo from istio samples and access it external ip of istio ingress-gateway
kubectl apply -f <(istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml)
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
kubectl get svc istio-ingressgateway -n istio-system
export GATEWAY_URL= curl -I http://${GATEWAY_URL}/productpage
I am testing on 1.1.3 and not on GKE, so there may be some difference in our behaviors.
I took the httpbin example (https://istio.io/docs/tasks/traffic-management/ingress/), and tried changing it to use your match containing an exact: and a prefix: (it has two prefix: by default) as I wanted to verify that there wasn’t an issue with having both. That did work for me.
your httpbin gateway yaml seems to be different from my responder-gateway.yaml
responder-gateway yaml is a copy of helloworld-gateway.yaml with change of gateway names, uri, ports,etc.
i changed from exact to prefix and below is updated responder-gateway.yaml which was applied
destination:
host: responder
port:
number: 7001
tried accessing responder application but getting 404 not found
here is my responder.js
const express = require(‘express’)
const app = express()
const port = 7001
app.get(’/’, (req, res) => res.send(‘Hello World!’))
app.listen(port, () => console.log(Example app listening on port ${port}!))
Built docker image, pushed to google cloud registry
Deployed it on to GKE by injecting proxy
kubectl apply -f <(istioctl kube-inject -f responder.yaml)
after deploying seeing responder pod in running state, not sure why not able to access it in curl or in browser
i already tried port 80 in gateway config, but no luck
i have bookinfo sample application also running which is working
can we have 2 applications exposed on gateway with same port 80?