Streamlit won't run on kubernetes

Hi all,

I am in a k8 pod, exposing all necessary ports.
When running the command streamlit hello everything works fine and I am able to reach the webapp via browser (I am connecting to an external server via ssh + vpn).

When instead I run my app with:

streamlit run app.py --server.port=8501 --server.address=0.0.0.0 --logger.level='debug'

this is what I see:

Collecting usage statistics. To deactivate, set browser.gatherUsageStats to False.

2023-07-10 21:40:49.130 No singleton. Registering one.

Then the app hangs forever and it never prints any long nor the url on which I can connect via browser.

Could somebody please help me understand what’s going on?
Thanks!

Hi @Stella,

Thanks for posting!

Did you use the guide in our Knowledge Base?

Hi Tony thanks for replying,

Yes, I took inspiration from that documentation, even though my pod runs on an AWS EC2 instance and my docker image lives on ECR.

I have an update: the app seems to finally run but after 10/15 minutes after I run the command. This app I am testing is just 2 pages with some text and nothing really sophisticated yet.
I am trying again now, it still hangs forever.

Some more context: here’s my Dockerfile:

FROM python:3.9-slim

RUN apt-get update && apt-get install -y \
    build-essential \
    software-properties-common \
    curl

RUN /usr/local/bin/python -m pip install --upgrade pip

COPY $STREAMLIT_DIR/src/demo_lib/requirements.txt /tmp/requirements.txt
RUN xargs -L 1 pip install < /tmp/requirements.txt

WORKDIR /app

COPY $STREAMLIT_DIR/src* .

EXPOSE 8501

#HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health

CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]

Here’s my .yaml config

...
ports:
- containerPort: 8501
  protocol: TCP

service:
  enabled: true
  annotations: {}
  type: NodePort
  ports:
  - port: 8501

resources:
  requests:
    cpu: 1
    memory: 4Gi
  requests:
    cpu: 2
    memory: 8Gi
...

Do you see anything missing/wrong?
Thanks!

Hi,
I solved it by just moving all my code into another directory and starting streamlit not in the root one.
Thanks!

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.