fabric8io / fabric8

fabric8 is an open source microservices platform based on Docker, Kubernetes and Jenkins
http://fabric8.io/
1.76k stars 504 forks source link

ingress controller not working on GKE #6445

Open rawlingsj opened 8 years ago

rawlingsj commented 8 years ago

not sure yet what the cause is but this issue can be tracked here now.

we have a discussion going on the nginx controller which this issue is linked to https://github.com/nginxinc/kubernetes-ingress/issues/41#issuecomment-253651790

const-bon commented 8 years ago

Not only in GKE, but also in a custom cluster installation.

rawlingsj commented 8 years ago

I've just tried fabric8 on google cloud using the original nginx ingress controller which failed, I still suspect because of the dockerhub tag overwrite issue linked above.

FWIW I also quickly created a kubernetes cluster on GKE using https://stackpoint.io/ who deploy a HAproxy instead of the nginx one. This worked just fine!

Until things are stabilised with the nginx image you might want to turn to https://stackpoint.io/. After creating a cluster on Google cloud and following the quickstart guide to connect to the cluster from the CLI I was able to run

gofabric8 deploy --pv=false

Persistence isn't supported on google cloud yet by stackpoint hence the extra flag above but will be soon. It's a great way to get up an running with kubernetes on the public cloud so might be worth looking at until we figure out the problems with nginx.

After the above the fabric8 console opened up correctly.

it-svit commented 8 years ago

I'm facing the following error

10.1.0.1 - - [14/Oct/2016:08:38:48 +0000] "GET /k8s/api/v1/namespaces HTTP/1.1" 200 2607 "http://fabric8.fabric8.cluster.local/workspaces/fabric8/forge/command/project-new" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36" "-"
2016/10/14 08:38:48 [error] 59#59: *325 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 10.1.0.1, server: fabric8.fabric8.cluster.local, request: "GET /k8s/apis/extensions/v1beta1/namespaces/user-secrets-source-admin/replicasets?watch=true&access_token HTTP/1.1", upstream: "http://172.16.71.5:9090/k8s/apis/extensions/v1beta1/namespaces/user-secrets-source-admin/replicasets?watch=true&access_token", host: "fabric8.fabric8.cluster.local

Is it relevant to ingress controller, or something else?

it-svit commented 8 years ago

Logs of fabric8 pod:

[root@localhost ~]# kubectl logs fabric8-8qd55 fabric8
2016/10/13 21:56:27 Creating config file:  /site/osconsole/config.basic.js.tmpl => /site/osconsole/config.js
2016/10/13 21:56:27 
2016/10/13 21:56:28 Creating service proxy: /k8s/ => https://10.254.0.1:443/
2016/10/13 21:56:28 Listening on :9090
2016/10/13 21:56:28 
ERR: 2016/10/14 08:36:18.019595 Error copying upstream response Body: write tcp 172.16.71.5:9090->172.16.71.6:45302: write: broken pipe
2016/10/14 08:36:18 http: multiple response.WriteHeader calls
it-svit commented 8 years ago

Also there is another issue with new fabric8 installation:

./gofabric8 deploy -d cluster.local
Deploying fabric8 to your Kubernetes installation at http://localhost:8080 for domain cluster.local in namespace fabric8
...
Deploying ingress controller on node 192.168.206.169 use its external ip when configuring your wildcard DNS.
...
Opening URL http://fabric8.fabric8.192.168.206.169.xip.io

Previously Opening URL was http://fabric8.fabric8.cluster.local. How can I get domain name back?

it-svit commented 8 years ago

Also I'm using fabric8 namespace, but I see that fabric8 console is trying to access default namespace.

http://fabric8.fabric8.192.168.206.169.xip.io/kubernetes/namespace/fabric8/apps?q=

VM297:35 WebSocket connection to 'ws://fabric8.fabric8.192.168.206.169.xip.io/k8s/api/v1/namespaces/default/services?watch=true&access_token' failed: Error during WebSocket handshake: Unexpected response code: 504
rawlingsj commented 8 years ago

@it-svit ok so I think there's a few issues you've raised here. It might be worth splitting a few into separate issues so they're easier to investigate. But on the domain question..

the domain is now defaulted to use xip but can be overridden in the exposecontroller config map https://github.com/fabric8io/exposecontroller#automatic

it-svit commented 8 years ago

@rawlingsj Could you please help me with splitting issues? I can't distinguish which one should be splitted.

rawlingsj commented 8 years ago

@it-svit sure...

rawlingsj commented 8 years ago

@it-svit ok that should do it - will make it easier to track too

it-svit commented 8 years ago

@rawlingsj Thank you a lot!