Добавление живых контейнеров в кластер Kubernates

#docker #kubernetes #containers #google-kubernetes-engine

#docker #kubernetes #контейнеры #google-kubernetes-engine

Вопрос:

Я работал с контейнерами docker для развертывания своей системы и управления ею, но теперь я решил использовать Kubernetes для автоматического масштабирования своего приложения, поэтому у меня есть четыре контейнера, работающих в одной сети 1- Nginx 2-Mysql 3-Php-fpm 4-Redis, которые настроены с использованием этого yamlфайл

 version: "3.3"  # optional since v1.27.0
networks:
  test:
services:
  nginx :
    image: nginx:stable-alpine
    container_name: Test_Qsinav
    depends_on: 
      - php
      - mysql
    volumes:
      - /var/www/html/Test/qSinav-starter:/var/www/html/Test/qSinav-starter/
      - /var/www/docker_test/nginx/default.conf:/etc/nginx/conf.d/default.conf
      - /var/www/cert:/var/www/cert
    networks:
      - test
  mysql:
    image: library/mysql:8.0.21
    container_name: QsinavTestMysql
    restart: unless-stopped
    tty: true
    volumes:
     - /var/www/docker_test/mysql/my.cnf:/etc/mysql/my.cnf
    environment:
      MYSQL_DATABASE: qsinav_demo
      MYSQL_USER: root
      MYSQL_PASSWORD: QsinavPassw0rd!
      MYSQL_ROOT_PASSWORD: QsinavPassw0rd!
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    networks:
      - test

  php:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: Test_php
    working_dir:  /var/www/html/Test/qSinav-starter
    volumes:
      - /var/www/html/Test/qSinav-starter:/var/www/html/Test/qSinav-starter
      - /var/www/html/docker_laravel/php/www.conf:/usr/local/etc/php-fpm.d/www.conf
      - ./php/docker-php-memlimit.ini:/usr/local/etc/php/conf.d/docker-php-memlimit.ini
    ports:
    - "10000:9000"
    networks:
      - test
    links:
      - redis
  redis:
    image: redis
    container_name: TestRedis
    networks:
     - test
 

это файл Docker

 FROM php:7.4-fpm-alpine
RUN apk add pcre-dev $PHPIZE_DEPS 
        amp;amp; pecl install redis 
        amp;amp; docker-php-ext-enable redis.so
RUN apk add libzip-dev libpng-dev 
RUN apk add  --update libmemcached-libs zlib
RUN set -xe amp;amp; 
    cd /tmp/ amp;amp; 
    apk add --no-cache --update --virtual .phpize-deps $PHPIZE_DEPS amp;amp; 
    apk add --no-cache --update --virtual .memcached-deps zlib-dev libmemcached-dev cyrus-sasl-dev amp;amp; 
# Install igbinary (memcached's deps)
    pecl install igbinary amp;amp; 
# Install memcached
    ( 
        pecl install --nobuild memcached amp;amp; 
        cd "$(pecl config-get temp_dir)/memcached" amp;amp; 
        phpize amp;amp; 
        ./configure --enable-memcached-igbinary amp;amp; 
        make -j$(nproc) amp;amp; 
        make install amp;amp; 
        cd /tmp/ 
    ) amp;amp; 
# Enable PHP extensions
    docker-php-ext-enable igbinary memcached amp;amp; 
    rm -rf /tmp/* amp;amp; 
    apk del .memcached-deps .phpize-deps


RUN docker-php-ext-install mysqli pdo pdo_mysql zip gd  bcmath exif 
RUN docker-php-ext-install bcmath

RUN curl --silent --show-error https://getcomposer.org/installer | php amp;amp; 
    mv composer.phar /usr/local/bin/composer
 

эти контейнеры работают без каких-либо проблем, и я определил тома, чтобы изменять файлы в контейнере с хоста
итак, как я могу создать эту структуру с помощью Kubernetes и определить HPA
спасибо

Комментарии:

1. Kubernetes никогда не сможет запустить код из вашей локальной системы, поэтому, если ничего другого вам не нужно, убедитесь COPY , что код приложения в вашем изображении и удалите volumes: . Здесь будет задействовано несколько частей (конфигурационные карты для файлов конфигурации, секреты для хранения учетных данных базы данных, развертывания для самих контейнеров приложений, набор состояний для базы данных, службы перед всем, конфигурация порта узла или балансировщика нагрузки для ее доступа) и «как я могу перевести это в Kubernetes»здесь немного сложно ответить.

2. спасибо за ответ, я попытаюсь создать файл yaml для kubernates, но я не знаю об объемах, как вы думаете, смогу ли я подключить папку моего хост-приложения к модулям? итак, если я что-то изменил на хосте, изменения будут применены к модулям

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

4. Хорошо, спасибо, я понял