Skip to content
This repository has been archived by the owner on Oct 5, 2022. It is now read-only.

nginx-ingress stuck: "does not have ingress points" #7009

Open
nicolaiskogheim opened this issue Dec 28, 2017 · 6 comments
Open

nginx-ingress stuck: "does not have ingress points" #7009

nicolaiskogheim opened this issue Dec 28, 2017 · 6 comments

Comments

@nicolaiskogheim
Copy link

$ gofabric8 version
gofabric8, version 0.4.176 (branch: 'unknown', revision: 'homebrew')
build date:       '20171110-18:14:07'
go version:       '1.9.2'

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.0", GitCommit:"925c127ec6b946659ad0fd596fa959be43f0cc05", GitTreeState:"clean", BuildDate:"2017-12-16T03:15:08Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.0", GitCommit:"925c127ec6b946659ad0fd596fa959be43f0cc05", GitTreeState:"clean", BuildDate:"2017-12-15T20:55:30Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}

$ uname -a
Darwin machine_name 15.6.0 Darwin Kernel Version 15.6.0: Mon Oct  2 22:20:08 PDT 2017; root:xnu-3248.71.4~1/RELEASE_X86_64 x86_64 i386 MacBookAir6,2 Darwin

$ docker --version # on my local machine
Docker version 17.11.0-ce, build 1caf76c

$ docker --version # on cluster
Docker version 17.03.1-ce, build c6d412e

I realise that it's ambitious to think that fabric8 will work with k8s 1.9, but despite the issue on init-containers being out of beta I thought I'd give it a shot.

Steps to reproduce

$ gofabric8 deploy --package system --http=true --legacy=false -n fabric8 
# In another terminal (because previous command hangs)
$ kubectl apply nginx-ingress-permissions.yaml # See below for this file

The gofabric8 deploy command never completes:

gofabric8 output

Deploying fabric8 to your Kubernetes installation at https://192.168.13.175:6443 for domain  in namespace fabric8

Loading fabric8 releases from maven repository:https://repo1.maven.org/maven2/
Continue? [Y/n]
Creating new Namespace: fabric8
No endpoints found for service nginx-ingress
Deploying package: ingress version: 4.0.208

Template APISERVER_HOSTPORT = 192.168.13.175:6443
Template NODE_IP = 192.168.13.175
Template EXPOSER =
Template DOMAIN = 192.168.13.175.nip.io
Template GITHUB_OAUTH_CLIENT_SECRET =
Template GITHUB_OAUTH_CLIENT_ID =
Template HTTP =
Template TLS_ACME_DATA =
Template APISERVER = 192.168.13.175
Template OAUTH_AUTHORIZE_PORT = 6443
Template NAMESPACE = nginx-ingress
Creating ingress template resources in namespace nginx-ingress from 9 objects
Processing resource kind: Namespace in namespace nginx-ingress name nginx-ingress
Processing resource kind: ServiceAccount in namespace nginx-ingress name nginx-ingress-serviceaccount
Processing resource kind: Service in namespace nginx-ingress name default-backend
Processing resource kind: Service in namespace nginx-ingress name nginx-ingress
Processing resource kind: ConfigMap in namespace nginx-ingress name fabric8-system
Processing resource kind: ConfigMap in namespace nginx-ingress name nginx-ingress
Processing resource kind: ConfigMap in namespace nginx-ingress name nginx-tmpl
Processing resource kind: Deployment in namespace nginx-ingress name default-backend
Processing resource kind: Deployment in namespace nginx-ingress name nginx-ingress
ingress.......................................................................✔
Waiting for External LoadBalancer IP Address for service nginx-ingress in namespace nginx-ingress.  This may take a few minutes.If you are running your own ingress controller please run deploy again passing the --ingress=false flag.


The nginx-ingress doesn't have permissions to see other services in its namespace so I gave it permissions:

nginx-ingress-permissions.yaml

---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
    namespace: nginx-ingress
    name: fabric8-nginx-ingress-user
rules:
- apiGroups: [""]
  resources: ["services"]
  verbs: ["get", "watch", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
    name: fabric8-nginx-user
    namespace: nginx-ingress
roleRef:
    apiGroup: rbac.authorization.k8s.io
    kind: Role
    name: fabric8-nginx-ingress-user
subjects:
- kind: ServiceAccount
  name: nginx-ingress-serviceaccount
  namespace: nginx-ingress


Now the nginx-ingress service/deployment enters CrashLoopBackOff.
It says something about missing ingress points and then dies.

nginx-ingress pod log


[dumb-init] Unable to detach from controlling tty (errno=25 Inappropriate ioctl for device).
[dumb-init] Child spawned with PID 7.
[dumb-init] Unable to attach to controlling tty (errno=25 Inappropriate ioctl for device).
[dumb-init] setsid complete.
I1228 15:31:58.225440       7 launch.go:105] &{NGINX 0.9.0-beta.11 git-a3131c5 https://github.com/kubernetes/ingress}
I1228 15:31:58.225483       7 launch.go:108] Watching for ingress class: nginx
I1228 15:31:58.225779       7 nginx.go:182] starting NGINX process...
I1228 15:31:58.226482       7 launch.go:262] Creating API server client for https://10.96.0.1:443
I1228 15:31:58.238746       7 launch.go:124] validated nginx-ingress/default-backend as the default backend
F1228 15:31:58.240834       7 launch.go:134] service nginx-ingress/nginx-ingress does not (yet) have ingress points
[dumb-init] Received signal 17.
[dumb-init] A child with PID 7 exited with exit status 255.
[dumb-init] Forwarded signal 15 to children.
[dumb-init] Child exited with status 255. Goodbye.


I understand that this issue may be down prioritised, but I though I'd file the issue anyway.

@nicolaiskogheim
Copy link
Author

gofabric8 validate after killing gofabric8 deploy ...:

Validating your Kubernetes installation at https://192.168.13.175:6443 in namespace default

Service account......................................✘ serviceaccounts "fabric8" not found
Console..............................................✘ deployments.extensions "fabric8" not found
Jenkinshift Service..................................✘ services "jenkinshift" not found
PersistentVolumeClaims...............................✔
ConfigMaps...........................................✔

@nicolaiskogheim
Copy link
Author

I just switched out the nginx images with the newest releases.
default-backend now runs gcr.io/google_containers/defaultbackend:1.4
and nginx-ingress runs quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.9.0
That didn't fix the issue 😁

nginx-ingress pod log

NGINX Ingress controller
  Release:    0.9.0
  Build:      git-6816630
  Repository: https://github.com/kubernetes/ingress-nginx
-------------------------------------------------------------------------------
 I1228 17:36:15.712435       6 main.go:227] Creating API client for https://10.96.0.1:443
I1228 17:36:15.725464       6 main.go:239] Running in Kubernetes Cluster version v1.9 (v1.9.0) - git (clean) commit 925c127ec6b946659ad0fd596fa959be43f0cc05 - platform linux/amd64
I1228 17:36:15.727908       6 main.go:83] validated nginx-ingress/default-backend as the default backend
F1228 17:36:15.729824       6 main.go:101] service nginx-ingress/nginx-ingress does not (yet) have ingress points


@shuang-x-zhao-gj
Copy link

Hi did you figured out how to solve this ? I also had same problem

sh-4.2# kubectl logs nginx-ingress-7ddc99b46c-6b9wk --namespace nginx-ingress
[dumb-init] Unable to detach from controlling tty (errno=25 Inappropriate ioctl for device).
[dumb-init] Child spawned with PID 5.
[dumb-init] Unable to attach to controlling tty (errno=25 Inappropriate ioctl for device).
[dumb-init] setsid complete.
I0202 07:42:29.973603 5 launch.go:105] &{NGINX 0.9.0-beta.11 git-a3131c5 https://github.com/kubernetes/ingress}
I0202 07:42:29.973632 5 launch.go:108] Watching for ingress class: nginx
I0202 07:42:29.973813 5 launch.go:262] Creating API server client for https://10.96.0.1:443
I0202 07:42:29.976995 5 nginx.go:182] starting NGINX process...
I0202 07:42:29.986773 5 launch.go:124] validated nginx-ingress/default-backend as the default backend
F0202 07:42:29.987821 5 launch.go:134] service nginx-ingress/nginx-ingress does not (yet) have ingress points
[dumb-init] Received signal 17.
[dumb-init] A child with PID 5 exited with exit status 255.
[dumb-init] Forwarded signal 15 to children.
[dumb-init] Child exited with status 255. Goodbye.

BTW, do you know what docker version and k8s version are workable for latest gofabric8 ?

@nicolaiskogheim
Copy link
Author

I never figured out how to get rid of service nginx-ingress/nginx-ingress does not (yet) have ingress points.

And I never got fabric8 working. I think I was close, but I never figured out what value to give to PROXY_PASS_URL, which I mention here: fabric8-ui/fabric8-ui-openshift-nginx#16

@nicolaiskogheim
Copy link
Author

Because init-containers in k8s was deprecated in 1.6 or something, I suppose you'll have to use 1.5. I never bothered trying that.

@shuang-x-zhao-gj
Copy link

well, thx, anyway, i tried docker 17+k8s 1.9, docker 1.12 + k8s 1.7.2, i didn't make it work, and i searched on website, i see someone successfully make it work on k8s 1.7.2 or 1.7.3 ...
that's sad it is really hard to set up this platform, it should be easy...

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants