Джанго, нгинкс и ганкорн в Куберне
Я пытаюсь запустить приложение django в kubernetes. Я использую docker-compose для сборки приложения и nginx. Я могу запустить приложение, используя прокси-сервер nginx в docker compose.
сборка docker-compose - успешно
docker-compose up - успешно
http://aggre.mabh.io/ - успешно (возможность загрузить приложение)
Когда я пытаюсь развернуть образ приложения и nginx, я получаю сообщение об ошибке в панели управления Kubernetes, говоря
Ошибка в кубернетес
Модуль имеет несвязанные утверждения PersistentVolumeClaims (повторяется 2 раза) (как для nginx, так и для приложения)
Я использую Kompose для создания и развертывания приложения.
Как развернуть приложение в kubernetes и получить к нему доступ через внешнюю конечную точку nginx kubernetes?
докер-compose.yml
version: '3'
services:
djangoapp:
build: .
image: sigmaaggregator/djangoapp
labels:
- kompose.service.type=NodePort
volumes:
- .:/djangoapp
- static_volume:/djangoapp/static
ports:
- 4000:4000
networks:
- nginx_network
nginx:
image: nginx:1.13
ports:
- 80:80
volumes:
- ./config/nginx/conf.d:/etc/nginx/conf.d
- static_volume:/djangoapp/static
depends_on:
- djangoapp
networks:
- nginx_network
networks:
nginx_network:
driver: bridge
volumes:
static_volume:
Dockerfile
FROM python:3.6
RUN mkdir -p /djangoapp
WORKDIR /djangoapp
COPY . /djangoapp
RUN pip install -r requirements.txt
# copy our project code
RUN python manage.py collectstatic --no-input
CMD exec /bin/bash -c "trap : TERM INT; sleep infinity & wait"
# expose the port 4000
EXPOSE 4000
# define the default command to run when starting the container
CMD ["gunicorn", "--bind", ":4000", "aggre.wsgi:application"]
конфиг / Nginx/conf.d/local.conf
upstream hello_server {
server djangoapp:4000;
}
server {
listen 80;
server_name aggre.mabh.io;
location /static/ {
alias /djangoapp/static/;
}
location / {
proxy_pass http://hello_server;
proxy_set_header Host $host;
#proxy_ssl_server_name on;
#proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
}
1 ответ
Для статических файлов с django на кубернетах рассмотрите возможность использования whitenoise http://whitenoise.evans.io/en/stable/, чтобы предоставить здесь решение.
Это прямая рекомендация, но я потратил много времени на поиск, прежде чем нашел ссылку на нее.