Kubernetes deploy.yaml для django + gunicorn + nginx - PullRequest
0 голосов
/ 20 марта 2019

Я создал образ докера, используя docker-compose.yml, как показано ниже

version: '2'

services:

  djangoapp:
    build: .
    volumes:
      - .:/sig_app
      - static_volume:/sig_app
    networks:
      - nginx_network

  nginx:
    image: nginx:1.13
    ports:
      - "80:80"
    volumes:
      - ./config/nginx/conf.d:/etc/nginx/conf.d
      - static_volume:/sig_app
    depends_on:
      - djangoapp
    networks:
      - nginx_network

networks:
  nginx_network:
    driver: bridge

volumes:
  static_volume:

Я использовал сборку docker-compose и сборку docker-compose. Три изображения создаются как показано ниже

  1. kubernetes_djangoapp
  2. docker.io / питон
  3. docker.io / Nginx

Я хочу развернуть приложение в kubernetes, используя файл YAML. Я новичок в kubernetes. Приложение Django работает с портом 8000 и Nginx с портом 80

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Это должно работать:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: my-deploy
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: my-app
    spec:
      volumes:
      - name: django-nginx
        emptyDir: {}
      - name: nginx-host
        hostPath:
          path: /config/nginx/conf.d 
      containers:
      - name: djangoapp
        image: kubernetes_djangoapp
        volumeMounts:
        - name: django-nginx
          mountPath: /sig_app
      - name: nginx
        image: nginx:1.13
        ports:
        - containerPort: 80
        volumeMounts:
        - name: django-nginx
          mountPath: /sig_app
        - name: nginx-host
          mountPath: /etc/nginx/conf.d

Обратите внимание, что вам придется изменить некоторые вещи, чтобы сделать их своими собственными.Мне не хватает, где изображение.Вы должны загрузить его в Docker Hub или любой другой реестр по вашему выбору.

Что касается томов, то здесь оба контейнера совместно используют непостоянный том (django-nginx), который сопоставляет каталог /sig_app в каждом контейнере сдруг с другом.И еще один, который совместно использует контейнер nginx (etc / nginx / conf.d) с вашим хостом (/config/nginx/conf.d) для передачи файла конфигурации.Лучшим способом было бы использовать ConfigMap.Проверьте это.

Итак, да, установите изображение для django и дайте мне знать, если оно не работает, и мы увидим, что не получается.

Приветствия

0 голосов
/ 20 марта 2019

Взгляните на Композит . Это позволит вам просто запустить команду

kompose up

для немедленного развертывания конфигурации docker-compose в кластере.

Если вы хотите сначала создать .yaml из файла docker-compose для проверки и редактирования, вы можете запустить

kompose convert
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...