istio: Port 80/443 not working with virtual service
kubectl version
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.4", GitCommit:"67d2fcf276fcd9cf743ad4be9a9ef5828adc082f", GitTreeState:"clean", BuildDate:"2019-09-18T14:51:13Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"15+", GitVersion:"v1.15.4-gke.22", GitCommit:"a6ba43f5a24ac29e631bb627c9b2a719c4e93638", GitTreeState:"clean", BuildDate:"2019-11-26T00:40:25Z", GoVersion:"go1.12.11b4", Compiler:"gc", Platform:"linux/amd64"}
istioctl version
client version: 1.4.2 control plane version: 65b6870f1e3bf73fc688a02d10963ea0158e96c6-dirty data plane version: 1.2.10-gke.0 (22 proxies)
Modified sample httpbin example
service
deployment
virtual service
Command to deploy to all
istioctl kube-inject apply -f httpbin-all.yaml | kubectl -n itest apply -f -
Running pods
kubectl -n itest get pods
NAME READY STATUS RESTARTS AGE
httpbin-7fbb6744b7-55dm9 2/2 Running 0 21m
k8s service
istio vs
Expected behavior when the service from another pod in the cluster is called is to have a fault with 500 status code
Observed behavior
If same is changed to port 80 , it bypasses virtual service altogether
Changing the virtual service port to 8000 makes no difference
Apparently if a k8s service has port 80 exposed , the virtual service is not getting used at all. All other ports seems to be working fine.
proxy-config for the routes look like this
Here is the complete yaml file httpbin-all.txt
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 19 (10 by maintainers)
I think you are not understanding HTTP route correctly, it only works on http like protocols, like. HTTP gRPC, etc. But not HTTPS.