Попытка передать трафик через контейнер NGINX на Django с помощью Kubernetes

Я застрял на чем-то, что мне кажется довольно простым для тех, кто может знать kubernetes. У меня есть приложение django, которое я пытаюсь развернуть в продакшн. Частью этого будет добавление SSL-сертификата, поэтому я полагаю, что для этого мне нужно что-то вроде контейнера nginx для публичного трафика, который будет первым.

У меня это работает в docker-compose, но наша производственная среда - это кластер kubernetes. Я смог получить файл kubernetes для запуска контейнеров, но трафик идет прямо на приложение django. Как мне настроить это так, чтобы трафик проходил через nginx?

apiVersion: apps/v1
kind: Deployment
metadata:
  name: networkapp-deploy
  labels:
    name: networkapp
spec:
  replicas: 1
  selector:
    matchLabels:
      name: networkapp_pod
  template:
    metadata:
      labels: 
        name: networkapp_pod
    spec:
      containers:
        - name: nginx
          image: nginx:alpine
          ports:
            - containerPort: 8000
        - name: redis
          image: redis:alpine
          ports:
            - containerPort: 6379
        - name: webapp
          image: localhost:5000/newweb/webapp:latest
          ports:
            - containerPort: 8001

---
kind: Service
apiVersion: v1
metadata:
  name: networkapp-svc
spec:
  selector:
    name: networkapp_pod
  ports:
  - protocol: TCP
    port: 80
    targetPort: 8000
  type: LoadBalancer

Вот файл docker compose, который, похоже, работает, если я запускаю его локально, мне просто нужно, чтобы это работало в kubernetes

version: "3.6"


services:
  nginx:
    image: nginx:alpine
    container_name: nginxcontainer
    ports:
      - "8000:8000"
    volumes:
      - ./src:/src
      - ./config/nginx:/etc/nginx/conf.d
    depends_on:
      - web
    networks:
      - djangonetwork
  web:
    build:
      context: .
      dockerfile: compose/django/Dockerfile
    container_name: djangocontainer
    #depends_on:
    #  - db
    volumes:
      - ./src:/src
    expose:
      - "8000"
    links:
      - redis
    env_file:
      - ./.envs/.django
    networks:
      - djangonetwork

  redis:
    image: redis:alpine
    container_name: rediscontainer
    ports:
      - "6379:6379"
    networks:
      - djangonetwork

networks:
  djangonetwork:
    driver: bridge

По крайней мере, у меня складывается впечатление, что nginx ничего не делает в файле kubernetes. Когда я смотрю на журналы, я вижу изменения только на контейнере django web app, пока я просматриваю сайт

Журналы nginx выглядят как

2022/06/03 23:15:17 [notice] 1#1: start worker process 49
2022/06/03 23:15:17 [notice] 1#1: start worker process 50
2022/06/03 23:15:17 [notice] 1#1: start worker process 51
2022/06/03 23:15:17 [notice] 1#1: start worker process 52
2022/06/03 23:15:17 [notice] 1#1: start worker process 53
2022/06/03 23:15:17 [notice] 1#1: start worker process 54
2022/06/03 23:15:17 [notice] 1#1: start worker process 55

И я попадаю на сайт, используя только http://localhost на порту 80

Вернуться на верх