We have a requirement where our developers want to access the service from their workstation using the kubernetes service url.
For example, our service name is “core-service”, within the k8s cluster other services can communicate to this service by http://core-service/
The devs want to connect from outside k8s so they setup a record in the windows hosts file such as
We also have a FQDN that connects to this service via a Ingress Gateway. For example, “service.mydomain.com/core-service”
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: private-gateway namespace: istio-system spec: selector: istio: internal-ingressgateway servers: - port: number: 80 name: http protocol: HTTP tls: httpsRedirect: true hosts: - "*" - port: number: 443 name: https protocol: HTTPS tls: mode: SIMPLE credentialName: dc-ssl hosts: - "*" apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: core-service namespace: core spec: gateways: - private-gateway.istio-system.svc.cluster.local hosts: - service.mydomain.com http: - match: - uri: prefix: /core-service/ rewrite: uri: / route: - destination: host: core-service port: number: 80 timeout: 60s
Now, how can I add “core-service” as the domain so that both are routed to the pod correctly?
I tried to create a new VirtualService
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: core-config-developer namespace: dit spec: gateways: - internal-gateway.istio-system.svc.cluster.local hosts: - core-service http: - match: - uri: prefix: / rewrite: uri: / route: - destination: host: core-service port: number: 80 timeout: 60s
But this doesn’t work as we are getting 404
2020-12-11T14:50:50.084645237Z [2020-12-11T14:50:44.292Z] “GET /health/heartbeat HTTP/1.1” 404 NR “-” “-” 0 0 0 - “172.23.176.4” “Wget/1.19.4 (linux-gnu)” “09a41214-ad71-4909-95a7-63afc71a920a” “core-config” “-” - - 172.23.176.84:8080 172.23.176.4:11155 - -