Bookinfo curl is blank

#1

After installing istio on a minikube cluster, and then following the directions here and then here I get:

$ kubectl get pods
NAME                             READY   STATUS    RESTARTS   AGE
details-v1-79c6548b59-qh2fr      2/2     Running   0          16m
productpage-v1-95d579cd5-sgn8p   2/2     Running   0          16m
ratings-v1-7665579b75-5b5rh      2/2     Running   0          16m
reviews-v1-67446f7d9b-p4nxn      2/2     Running   0          16m
reviews-v2-6bc7b4f678-jtxx7      2/2     Running   0          16m
reviews-v3-59b5b6948-6bdwd       2/2     Running   0          16m
$ kubectl label namespace default istio-injection=enabled
error: 'istio-injection' already has a value (enabled), and --overwrite is false
$ kubectl get gateway
NAME               AGE
bookinfo-gateway   10m
$ export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}')
$ export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')
$ export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT
$ echo $GATEWAY_URL
192.168.99.104:31380
$ kubectl exec -it $(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}') -c ratings -- curl productpage:9080/productpage | grep -o "<title>.*</title>"
<title>Simple Bookstore App</title>
$ curl -s http://$\{GATEWAY_URL\}/productpage | grep -o "<title>.*</title>"
$ curl -s http://$\{GATEWAY_URL\}/productpage

notice the kubectl exec statement returns the <title> block, but neither curl statement returns anything.

I get the same results when duplicating the same steps on a full running multinode cluster. Is something amiss?

#2

opening a github issue here as after duplicating this in multiple envirionments I’m convinced this is a bug.

#3

Could you post your yaml contents? (deployment, service, virtualservice, ingress)

#4

@spekr created a fresh minikube cluster just now.

At the point of determining ingress ports etc I do not show any ingress:

$ kubectl get ingress --all-namespaces             
No resources found.

All other yamls are here:

#5

@frankbu pointed out in the github issue that the two gateways are conflicting.

TLDR:

kubectl delete gateway -n istio-system istio-autogenerated-k8s-ingress

all good now

1 Like