deis/workflow

trouble with registering deis

Closed this issue · 19 comments

ive followed every step in install instructions..
and for registering deis i have this problem
a@a-virtual-machine:~$ deis register http://10.0.0.237.nip.io Error: Get http://10.0.0.237.nip.io/v2/: dial tcp 10.0.0.237:80: getsockopt: no route to host
what can i do for register?

10.0.0.x is an internal network bridge for within the cluster. You'll need to grab the load balancer's IP address or the node's public IP address. See https://deis.com/docs/workflow/quickstart/deploy-an-app/#determine-your-host-and-hostname-values

also it should be http://deis.theipaddress.nip.io as the router redirects requests based on the header's hostname. deis redirects to the controller.

@bacongobbler
a@a-virtual-machine:~$ deis register http://deis.10.0.0.237.nip.io Error: Get http://deis.10.0.0.237.nip.io/v2/: dial tcp 10.0.0.237:80: getsockopt: no route to host
this is the error afterwards..

10.0.0.237 will not work outside of the cluster. My first comment should show you how to get the correct IP address you're looking for.

@bacongobbler
a@a-virtual-machine:~$ deis register http://deis.84.x.32.42.nip.io Error: Get http://deis.84.x.32.42.nip.io/v2/: dial tcp 84.x.32.42:80: getsockopt: connection refused
the public 84.x.32.42
we have killed all process on port 80 &443

Not sure how to proceed here either. Following the exact instructions.

  1. Minikube ip
minikube ip
192.168.64.2

Option 1.
If your router IP is 1.1.1.1, its $hostname will be 1.1.1.1.nip.io. You can find your IP address by running:

kubectl --namespace=deis describe svc deis-router
Name:			deis-router
Namespace:		deis
Labels:			heritage=deis
Annotations:		service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout=1200
Selector:		app=deis-router
Type:			LoadBalancer
IP:			10.0.0.54
Port:			http	80/TCP
NodePort:		http	30327/TCP
Endpoints:		<none>
Port:			https	443/TCP
NodePort:		https	30582/TCP
Endpoints:		<none>
Port:			builder	2222/TCP
NodePort:		builder	32763/TCP
Endpoints:		<none>
Port:			healthz	9090/TCP
NodePort:		healthz	30349/TCP
Endpoints:		<none>
Session Affinity:	None
Events:			<none>

Do I use 192.x.x or 10.x.x ? When I use 192.x.x I get (either
deis register http://192.168.64.2.nip.io OR deis register http://10.0.0.54.nip.io) I get

Error: http://192.168.64.2.nip.io does not appear to be a valid Deis controller.
Make sure that the Controller URI is correct, the server is running and
your deis version is correct.

For 10.x.x (either deis register http://10.0.0.54.nip.io || deis register http://deis.10.0.0.54.nip.io) I get

Error: Get http://deis.10.0.0.54.nip.io/v2/: dial tcp 10.0.0.54:80: getsockopt: operation timed out

Do I need to change my virtualbox settings? Is there something obvious I am missing?

vdice commented

@dfcarpenter there's actually a docs fix surrounding the line referenced below Option 1. (see #835). There may be still be room for improved clarity in those docs, particularly w/r/t minikube clusters...

The full command should be:

deis register http://deis.$(minikube ip).nip.io

(where $(minikube ip) resolved to 192.168.64.2 at the time of writing)

Let me know if the above fails to work...

@vdice So I was having issues with some pods starting correctly and I was unable to uninstall and purge everything and start over. The problem now is the deis-router just hangs and never gets out of a pending state.

kubectl --namespace=deis get pods
NAME                                     READY     STATUS    RESTARTS   AGE
deis-builder-1134541883-qgm0v            1/1       Running   1          14m
deis-controller-2381495828-wx1cn         1/1       Running   1          14m
deis-database-401209816-fn4hk            1/1       Running   0          14m
deis-logger-2717637750-9vsgb             1/1       Running   2          14m
deis-logger-fluentd-9dw27                1/1       Running   0          14m
deis-logger-redis-1413683677-v5hck       1/1       Running   0          14m
deis-minio-3370481340-dmr30              1/1       Running   0          14m
deis-monitor-grafana-1073006293-qvr3q    1/1       Running   0          14m
deis-monitor-influxdb-2675149720-ljnxv   1/1       Running   0          14m
deis-monitor-telegraf-hpm0f              1/1       Running   1          14m
deis-nsqd-1225249577-1kll5               1/1       Running   0          14m
deis-registry-2623437609-9tz32           1/1       Running   2          14m
deis-registry-proxy-1pm8b                1/1       Running   0          14m
deis-router-3574011047-thqw0             0/1       Pending   0          14m
deis-workflow-manager-3757950027-db43m   1/1       Running   0          14m
kubectl get svc --all-namespaces
NAMESPACE     NAME                     CLUSTER-IP   EXTERNAL-IP   PORT(S)                                                    AGE
default       details                  10.0.0.224   <none>        9080/TCP                                                   31d
default       kubernetes               10.0.0.1     <none>        443/TCP                                                    32d
default       postgres                 10.0.0.192   <none>        5432/TCP                                                   13h
deis          deis-builder             10.0.0.207   <none>        2222/TCP                                                   14m
deis          deis-controller          10.0.0.166   <none>        80/TCP                                                     14m
deis          deis-database            10.0.0.193   <none>        5432/TCP                                                   14m
deis          deis-logger              10.0.0.204   <none>        80/TCP                                                     14m
deis          deis-logger-redis        10.0.0.16    <none>        6379/TCP                                                   14m
deis          deis-minio               10.0.0.179   <none>        9000/TCP                                                   14m
deis          deis-monitor-grafana     10.0.0.219   <none>        80/TCP                                                     14m
deis          deis-monitor-influxapi   10.0.0.71    <none>        80/TCP                                                     14m
deis          deis-monitor-influxui    10.0.0.174   <none>        80/TCP                                                     14m
deis          deis-nsqd                10.0.0.29    <none>        4151/TCP,4150/TCP                                          14m
deis          deis-registry            10.0.0.161   <none>        80/TCP                                                     14m
deis          deis-router              10.0.0.54    <pending>     80:30508/TCP,443:31946/TCP,2222:31143/TCP,9090:32638/TCP   14m
deis          deis-workflow-manager    10.0.0.246   <none>        80/TCP                                                     14m
fission       controller               10.0.0.136   <nodes>       80:31313/TCP                                               11h
fission       etcd                     10.0.0.41    <none>        2379/TCP                                                   11h
fission       influxdb                 10.0.0.125   <nodes>       8086:31315/TCP                                             11h
fission       poolmgr                  10.0.0.110   <none>        80/TCP                                                     11h
fission       router                   10.0.0.141   <nodes>       80:31314/TCP                                               11h
kube-system   default-http-backend     10.0.0.218   <nodes>       80:30001/TCP                                               32d
kube-system   kube-dns                 10.0.0.10    <none>        53/UDP,53/TCP                                              32d
kube-system   kubernetes-dashboard     10.0.0.78    <nodes>       80:30000/TCP                                               32d
kube-system   tiller-deploy            10.0.0.216   <none>        44134/TCP                                                  13h

Could it be related to #533 somehow? Specifically to replace "LoadBalancer" by "NodePort" for Minikube installs?

vdice commented

@dfcarpenter I see. The only extra value that should need setting for Workflow on minikube is the --set router.host_port.enabled=true as mentioned in the install-minikube guide -- even then, if it is not explicitly set, the router pod should run fine.

Wondering if you could supply what the router logs are saying when it is stuck in the pending state?

The following may turn up some clues:
kubectl -n deis logs $(kubectl -n deis get po -l app=deis-router -o name) and/or
kubectl -n deis describe $(kubectl -n deis get po -l app=deis-router -o name)

@vdice Thanks. So the logs command doesn't show anything but the describe does.

Name:		deis-router-3574011047-thqw0
Namespace:	deis
Node:		/
Labels:		app=deis-router
		pod-template-hash=3574011047
Annotations:	kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicaSet","namespace":"deis","name":"deis-router-3574011047","uid":"95c3a738-6045-11e7-af40-0ab2ca7a0882...
Status:		Pending
IP:
Controllers:	ReplicaSet/deis-router-3574011047
Containers:
  deis-router:
    Image:	quay.io/deis/router:v2.13.0
    Ports:	8080/TCP, 6443/TCP, 2222/TCP, 9090/TCP
    Liveness:	http-get http://:9090/healthz delay=10s timeout=1s period=10s #success=1 #failure=3
    Readiness:	http-get http://:9090/healthz delay=1s timeout=1s period=10s #success=1 #failure=3
    Environment:
      POD_NAMESPACE:	deis (v1:metadata.namespace)
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from deis-router-token-cmz9v (ro)
Conditions:
  Type		Status
  PodScheduled 	False
Volumes:
  deis-router-token-cmz9v:
    Type:	Secret (a volume populated by a Secret)
    SecretName:	deis-router-token-cmz9v
    Optional:	false
QoS Class:	BestEffort
Node-Selectors:	<none>
Tolerations:	<none>
Events:
  FirstSeen	LastSeen	Count	From			SubObjectPath	Type		Reason			Message
  ---------	--------	-----	----			-------------	--------	------			-------
  1h		1h		92	default-scheduler			Warning		FailedScheduling	No nodes are available that match all of the following predicates:: PodFitsHostPorts (1).

I did also ensure that the router.host_port option was set to true

helm install deis/workflow --namespace deis --set router.host_port.enabled=true
NAME:   eager-bumblebee
LAST DEPLOYED: Mon Jul  3 16:15:59 2017
NAMESPACE: deis
STATUS: DEPLOYED

RESOURCES:
==> v1/Service
NAME                    CLUSTER-IP  EXTERNAL-IP  PORT(S)                                                   AGE
deis-logger-redis       10.0.0.16   <none>       6379/TCP                                                  4s
deis-nsqd               10.0.0.29   <none>       4151/TCP,4150/TCP                                         4s
deis-minio              10.0.0.179  <none>       9000/TCP                                                  4s
deis-monitor-influxapi  10.0.0.71   <none>       80/TCP                                                    4s
deis-router             10.0.0.54   <pending>    80:30508/TCP,443:31946/TCP,2222:31143/TCP,9090:32638/TCP  4s
deis-monitor-grafana    10.0.0.219  <none>       80/TCP                                                    4s
deis-database           10.0.0.193  <none>       5432/TCP                                                  4s
deis-monitor-influxui   10.0.0.174  <none>       80/TCP                                                    4s
deis-logger             10.0.0.204  <none>       80/TCP                                                    4s
deis-builder            10.0.0.207  <none>       2222/TCP                                                  4s
deis-workflow-manager   10.0.0.246  <none>       80/TCP                                                    4s
deis-controller         10.0.0.166  <none>       80/TCP                                                    4s
deis-registry           10.0.0.161  <none>       80/TCP                                                    4s

==> v1beta1/DaemonSet
NAME                   DESIRED  CURRENT  READY  UP-TO-DATE  AVAILABLE  NODE-SELECTOR  AGE
deis-monitor-telegraf  1        1        0      1           0          <none>         4s
deis-registry-proxy    1        1        0      1           0          <none>         4s
deis-logger-fluentd    1        1        0      1           0          <none>         4s

==> v1beta1/Deployment
NAME                   DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
deis-monitor-grafana   1        1        1           0          4s
deis-builder           1        1        1           0          4s
deis-logger            1        1        1           0          4s
deis-nsqd              1        1        1           0          4s
deis-monitor-influxdb  1        1        1           0          4s
deis-workflow-manager  1        1        1           0          4s
deis-registry          1        1        1           0          4s
deis-router            1        1        1           0          4s
deis-minio             1        1        1           0          4s
deis-logger-redis      1        1        1           0          4s
deis-database          1        1        1           0          3s
deis-controller        1        1        1           0          3s

==> v1/Secret
NAME                   TYPE    DATA  AGE
minio-user             Opaque  2     4s
objectstorage-keyfile  Opaque  2     4s
deis-router-dhparam    Opaque  1     4s

==> v1/ConfigMap
NAME                  DATA  AGE
slugrunner-config     1     4s
dockerbuilder-config  2     4s
slugbuilder-config    2     4s

==> v1/ServiceAccount
NAME                   SECRETS  AGE
deis-logger-fluentd    1        4s
deis-logger            1        4s
deis-minio             1        4s
deis-database          1        4s
deis-controller        1        4s
deis-nsqd              1        4s
deis-router            1        4s
deis-builder           1        4s
deis-workflow-manager  1        4s
deis-monitor-telegraf  1        4s
deis-registry          1        4s

Not sure exactly how to troubleshoot but would deis/router#58 still be applicable?

vdice commented

@dfcarpenter ah it indeed appears to resemble deis/router#58 -- is there another service/k8s resource already using port 80 on the minikube host?

Hi Team,

Could someone please guide me. I am also trying to install Deis in minikube. While registering, obeserving below error.

[Deis]$ kubectl --namespace=deis describe svc deis-router
Name: deis-router
Namespace: deis
Labels: heritage=deis
Annotations: service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout=1200
Selector: app=deis-router
Type: LoadBalancer
IP: 10.0.0.121
Port: http 80/TCP
NodePort: http 30876/TCP
Endpoints: 172.17.0.9:8080
Port: https 443/TCP
NodePort: https 31032/TCP
Endpoints: 172.17.0.9:6443
Port: builder 2222/TCP
NodePort: builder 31934/TCP
Endpoints: 172.17.0.9:2222
Port: healthz 9090/TCP
NodePort: healthz 32103/TCP
Endpoints: 172.17.0.9:9090
Session Affinity: None
Events:


[Deis]$ minikube ip
192.168.99.100
[Deis]$
[Deis]$ deis register http://deis.10.0.0.121.nip.io
http://deis.10.0.0.121.nip.io/v1/ does not appear to be a valid Deis controller.
Make sure that the Controller URI is correct, the server is running and
your client version is correct.
Error: Get http://deis.10.0.0.121.nip.io/v1/: EOF

update:- no other service is using port 80.

That is the IP internal to the cluster. You'll want to use the value returned from minikube ip as shown in the documentation. :)

Sorry for delay in responding. I tried with "minikube ip" also, observing below issue.
]$ minikube ip
192.168.99.100
[]$
[]$ deis register http://deis.192.168.99.100.nip.io
Error: http://deis.192.168.99.100.nip.io/v1/ does not appear to be a valid Deis controller.
Make sure that the Controller URI is correct, the server is running and
your client version is correct.

Looks like you’re using an older client as it’s hitting /v1. Can you try updating?

Current version, I am using is following:-
$ deis version
1.13.3


Will follow the document:- https://deis.com/docs/workflow/quickstart/install-cli-tools/
and update to v2.18.0. Will let you know the status.
Thanks a lot for providing the details.

After updating to v2.18.0
Able to register User in deis.

i tried to register user with deis register https://deis.app-testing.mydomain.io but am getting the below error,
(don't bother abut double dot in domain name it's common and it's working. i already registered user for another domain like this)

Error: https://deis.app-testing.mydomain.io does not appear to be a valid Deis controller.
Make sure that the Controller URI is correct, the server is running and
your deis version is correct.

I have domain in route53. configured load balancer with ACM certificate and pointed load balancer to domain in route53.

my pods are running without any error. i don't know how to troubleshoot it?can anyone help?