#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. Хорошо, спасибо, я понял