我使用 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 \
&& pecl install redis \
&& docker-php-ext-enable redis.so
RUN apk add libzip-dev libpng-dev
RUN apk add --update libmemcached-libs zlib
RUN set -xe && \
cd /tmp/ && \
apk add --no-cache --update --virtual .phpize-deps $PHPIZE_DEPS && \
apk add --no-cache --update --virtual .memcached-deps zlib-dev libmemcached-dev cyrus-sasl-dev && \
# Install igbinary (memcached's deps)
pecl install igbinary && \
# Install memcached
( \
pecl install --nobuild memcached && \
cd "$(pecl config-get temp_dir)/memcached" && \
phpize && \
./configure --enable-memcached-igbinary && \
make -j$(nproc) && \
make install && \
cd /tmp/ \
) && \
# Enable PHP extensions
docker-php-ext-enable igbinary memcached && \
rm -rf /tmp/* && \
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 && \
mv composer.phar /usr/local/bin/composer
这些容器正常工作,我定义了卷以便从主机更改容器中的文件
那么我怎样才能用 Kubernetes 做这个结构并定义 HPA
谢谢