Мне нужна информация о docker-compose.yml - как настроить / экспортировать в kubernetes ingress - PullRequest
0 голосов
/ 07 января 2019

Я создаю приложение, написанное на PHP / Symfony4. Я подготовил службу API и некоторые службы, написанные на NodeJS / Express. Я настраиваю структуру сервера с помощью Google Cloud Platform. На данный момент наилучшей идеей является конфигурация мультизональных мультикластеров с балансировщиком нагрузки.

Я использовал эту ссылку https://github.com/GoogleCloudPlatform/k8s-multicluster-ingress/tree/master/examples/zone-printer в качестве источника для моей конфигурации. Но сейчас я не знаю, как загрузить / собрать docker-compose.yml для GCR, который можно использовать в Google Kubernetes.

version: '3'
services:
php:
    image: gcr.io/XXX/php
    build: build/php
    expose:
        - '9000'
    volumes:
        - ./symfony:/var/www/html/symfony:cached
        - ./logs:/var/log
 web:
    image: gcr.io/XXX/nginx
    build: build/nginx
    restart: always
    ports:
        - "81:80"
    depends_on:
        - php
    volumes:
        - ./symfony:/var/www/html/symfony:cached
        - ./logs:/var/log/nginx

Мне нужно иметь один контейнер GCR.io/XXX/XXX/XXX для конфигурации kubernetes-ingress. Должен ли я использовать docker-compose.yml или найти что-то еще? Какое решение будет лучшим?

1 Ответ

0 голосов
/ 08 января 2019

декларации docker-compose и Kubernetes не совместимы друг с другом. Если вы хотите использовать Kubernetes, вы можете использовать Pod с 2 контейнерами (согласно вашему примеру). Если вы хотите пойти еще дальше, вы можете использовать Kubernetes Deployment , который может управлять вашими репликами pod, если вы используете несколько реплик.

Примерно так:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
  labels:
    app: myapp
spec:
  replicas: 1
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: php
        image: gcr.io/XXX/php
        ports:
        - containerPort: 9000
        volumeMounts:
        - mountPath: /var/www/html/symfony
          name: symphony
        - mountPath: /var/log
          name: logs
      - name: web
        image: gcr.io/XXX/nginx
        ports:
        - containerPort: 80
        volumeMounts:
        - mountPath: /var/www/html/symfony
          name: symphony
        - mountPath: /var/log
          name: logs
      volumes:
      - name: symphony
        hostPath:
          path: /home/symphony
      - name: logs
        hostPath:
          path: /home/logs

Более того, вы можете удалить свой веб-контейнер и использовать nginx ingress controller . Подробнее о Kubernetes Ingresses здесь

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