https://www.orchest.io/ logo
#tech-support
Title
# tech-support
e

ekeras

12/02/2022, 9:12 AM
Hi! We have deployed Orchest on Linux server using Minikube.
minikube ip
didn't give us access to Orchest app, so we used port-forwarding
minikube kubectl -- port-forward --address public_ip -n orchest orchest-webserver-5d8585bd64-8c6bh 8448:80
in order to have Orchest app available through our public_ip:8448. This allowed us to reach Orchest web interface, create project, but failed at openning JupyterLab notebooks - it tries to go back to project list page and then tries to enter JupyterLab, then tries to go back to project list page and then JupyterLab and gets into this loop. So, I am thinking, could it be that JupyterLab needs to be port-forwarded as well? But if that's the case, newly created JupyterLab server pod would still fail. What other options we have?
👀 2
j

Jacopo

12/02/2022, 9:32 AM
Hi @ekeras, is the ingress addon enabled in minikube? Do you see anything interesting when you run
kubectl describe ingress -n orchest
? About the ingress hostnames and such When it comes to hosting and exposing Orchest there are some caveats to keep in mind, for example the fact that the application uses websockets for some features, so whatever you are using to proxy needs to enable that. This section in the docs should be of help
e

ekeras

12/02/2022, 9:51 AM
We have deployed Orchest to minikube using convienience_install.sh script, which enables Ingress for minikube as well. This is what I've got from
minikube kubectl -- describe ingress -n orchest
, I don't see anything unusual.
Copy code
Name:             auth-server
Labels:           <http://controller.orchest.io/component=auth-server|controller.orchest.io/component=auth-server>
                  <http://controller.orchest.io/owner=auth-server|controller.orchest.io/owner=auth-server>
                  <http://controller.orchest.io/part-of=orchest|controller.orchest.io/part-of=orchest>
                  <http://orchest.io/orchest-hash=546b6fc795|orchest.io/orchest-hash=546b6fc795>
Namespace:        orchest
Address:          minikube_ip_address
Ingress Class:    nginx
Default backend:  <default>
Rules:
  Host        Path  Backends
  ----        ----  --------
  *
              /login   auth-server:80 (172.17.0.10:80)
Annotations:  <http://controller.orchest.io/k8s|controller.orchest.io/k8s>: minikube
              <http://nginx.ingress.kubernetes.io/proxy-body-size|nginx.ingress.kubernetes.io/proxy-body-size>: 0
Events:       <none>


Name:             jupyter-server-7814ce85-16ac-46960915b350-b929-4cbd
Labels:           app=jupyter-server
                  project_uuid=7814ce85-16ac-4696-a8f5-10944a43dd50
                  session_uuid=7814ce85-16ac-46960915b350-b929-4cbd
Namespace:        orchest
Address:          minikube_ip_address
Ingress Class:    nginx
Default backend:  <default>
Rules:
  Host        Path  Backends
  ----        ----  --------
  *
              /jupyter-server-7814ce85-16ac-46960915b350-b929-4cbd   jupyter-server-7814ce85-16ac-46960915b350-b929-4cbd:80 (172.17.0.20:8888)
Annotations:  <http://nginx.ingress.kubernetes.io/proxy-body-size|nginx.ingress.kubernetes.io/proxy-body-size>: 0
Events:
  Type    Reason  Age                From                      Message
  ----    ------  ----               ----                      -------
  Normal  Sync    59m (x2 over 59m)  nginx-ingress-controller  Scheduled for sync


Name:             jupyter-server-7de56ab2-3e57-461933539293-4e55-4d6c
Labels:           app=jupyter-server
                  project_uuid=7de56ab2-3e57-4619-be1e-b2a5af94019f
                  session_uuid=7de56ab2-3e57-461933539293-4e55-4d6c
Namespace:        orchest
Address:          minikube_ip_address
Ingress Class:    nginx
Default backend:  <default>
Rules:
  Host        Path  Backends
  ----        ----  --------
  *
              /jupyter-server-7de56ab2-3e57-461933539293-4e55-4d6c   jupyter-server-7de56ab2-3e57-461933539293-4e55-4d6c:80 (172.17.0.18:8888)
Annotations:  <http://nginx.ingress.kubernetes.io/proxy-body-size|nginx.ingress.kubernetes.io/proxy-body-size>: 0
Events:       <none>


Name:             orchest-api
Labels:           <http://controller.orchest.io/component=orchest-api|controller.orchest.io/component=orchest-api>
                  <http://controller.orchest.io/owner=orchest-api|controller.orchest.io/owner=orchest-api>
                  <http://controller.orchest.io/part-of=orchest|controller.orchest.io/part-of=orchest>
                  <http://orchest.io/orchest-hash=68bb6dbfcc|orchest.io/orchest-hash=68bb6dbfcc>
Namespace:        orchest
Address:          minikube_ip_address
Ingress Class:    nginx
Default backend:  <default>
Rules:
  Host        Path  Backends
  ----        ----  --------
  *
              /orchest-api   orchest-api:80 (172.17.0.8:80)
Annotations:  <http://controller.orchest.io/k8s|controller.orchest.io/k8s>: minikube
              <http://nginx.ingress.kubernetes.io/auth-url|nginx.ingress.kubernetes.io/auth-url>: <http://auth-server.orchest.svc.cluster.local/auth>
              <http://nginx.ingress.kubernetes.io/proxy-body-size|nginx.ingress.kubernetes.io/proxy-body-size>: 0
Events:       <none>


Name:             orchest-controller
Labels:           <none>
Namespace:        orchest
Address:          minikube_ip_address
Ingress Class:    nginx
Default backend:  <default>
Rules:
  Host        Path  Backends
  ----        ----  --------
  *
              /controller(/|$)(.*)   orchest-controller:80 (172.17.0.2:80)
Annotations:  <http://nginx.ingress.kubernetes.io/rewrite-target|nginx.ingress.kubernetes.io/rewrite-target>: /$2
Events:       <none>


Name:             orchest-webserver
Labels:           <http://controller.orchest.io/component=orchest-webserver|controller.orchest.io/component=orchest-webserver>
                  <http://controller.orchest.io/owner=orchest-webserver|controller.orchest.io/owner=orchest-webserver>
                  <http://controller.orchest.io/part-of=orchest|controller.orchest.io/part-of=orchest>
                  <http://orchest.io/orchest-hash=86d6fdd595|orchest.io/orchest-hash=86d6fdd595>
Namespace:        orchest
Address:          minikube_ip_address
Ingress Class:    nginx
Default backend:  <default>
Rules:
  Host        Path  Backends
  ----        ----  --------
  *
              /   orchest-webserver:80 (172.17.0.11:80)
Annotations:  <http://controller.orchest.io/k8s|controller.orchest.io/k8s>: minikube
              <http://nginx.ingress.kubernetes.io/auth-signin|nginx.ingress.kubernetes.io/auth-signin>: /login
              <http://nginx.ingress.kubernetes.io/auth-url|nginx.ingress.kubernetes.io/auth-url>: <http://auth-server.orchest.svc.cluster.local/auth>
              <http://nginx.ingress.kubernetes.io/proxy-body-size|nginx.ingress.kubernetes.io/proxy-body-size>: 0
Events:       <none>
y

Yannick

12/02/2022, 10:24 AM
Some things that come to mind for me: • Maybe the device driver for minikube has impact on this. We use the Docker driver ourselves. Did you use another driver? • Did you set up an FQDN for Orchest (link to docs)? Given the ingress rules it indeed doesn't work to just port-forward the
orchest-webserver
.
r

Rick Lamers

12/02/2022, 11:14 AM
I’d recommend setting up nginx on the host as described in the section referred to by @Jacopo
👍 1
3 Views