Я развернул MySql и PhpMyAdmin в кластере Kubernetes. Я хочу войти в PMA с именем пользователя и паролем и подключиться к Mysql. Я как бы застрял. У меня есть внешний IP для PMA, который должен подключаться к моей базе данных.
Вот мой сценарий развертывания:
Для MySQL:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
creationTimestamp: null
labels:
name: mysqldb
name: mysqldb
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
creationTimestamp: null
labels:
name: mysqldb
spec:
containers:
- env:
- name: DB_NAME
value: metrics
- name: DB_USER
value: metrics
- name: DB_PASS
value: ****
image: mysql:5.7
name: mysqldb
ports:
- containerPort: 3306
resources: {}
volumeMounts:
- mountPath: /var/lib/mysql
name: data-volume
subPath: data
restartPolicy: Always
volumes:
- name: data-volume
persistentVolumeClaim:
claimName: data-volume
status: {}
Для PMA:
apiVersion: v1
kind: Pod
metadata:
name: myadmin
labels:
name: myadmin
spec:
containers:
- name: phpmyadmin
image: phpmyadmin/phpmyadmin
env:
- name: PMA_HOST
value: mysqldb
- name: DB_NAME
value: metrics
- name: DB_USER
value: *****
- name: DB_PASS
value: *****
ports:
- containerPort: 80
name: myadmin
Я делаю что-то неправильно.
Можно ли вообще развернуть Php, Mysql, PMA, React и Nginx в Куберне?
Вроде изо всех сил пытаться выяснить, как все вещи связаны, и не может найти никаких значимых ресурсов, связанных с этой темой. Мое приложение отлично работает на локальном компьютере с помощью docker-compose и пытается преобразовать этот файл в ресурсы Kompose.
Вот мой файл docker-compose:
version: '3'
services:
web:
image: nginx:alpine
volumes:
- "./etc/nginx/default.conf:/etc/nginx/conf.d/default.conf"- "./etc/ssl:/etc/ssl"- "./web:/var/www/html"- "./etc/nginx/default.template.conf:/etc/nginx/conf.d/default.template"ports:
- "8000:80"- "3000:443"environment:
- NGINX_HOST=${NGINX_HOST}
command: /bin/sh -c "envsubst '$$NGINX_HOST' < /etc/nginx/conf.d/default.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"restart: always
depends_on:
- php
- mysqldb
app:
build: ./app
environment:
- NODE_ENV=$NODE_ENV
ports:
- "5000:5000"volumes:
- ./app:/usr/src/web
# Use a data volume to store all `node_modules` to prevent the directory
# being removed when `./app` is mounted into the docker instance
- /usr/src/web/node_modules
#uncomment to run a local prod build
#command: yarn build-start-local-prod
php:
image: nanoninja/php-fpm:${PHP_VERSION}
restart: always
env_file:
- ".env"environment:
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
volumes:
- "./etc/php/php.ini:/usr/local/etc/php/conf.d/php.ini"- "./web:/var/www/html"composer:
image: "composer"volumes:
- "./web/app:/app"command: install
myadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
ports:
- "8080:80"environment:
- PMA_ARBITRARY=1
- PMA_HOST=${MYSQL_HOST}
restart: always
depends_on:
- mysqldb
mysqldb:
image: mysql:5.7
container_name: ${MYSQL_HOST}
restart: always
env_file:
- ".env"environment:
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
ports:
- "8989:3306"volumes:
- "data-volume:/var/lib/mysql"volumes:
data-volume:
Буду признателен, если вы можете помочь. Спасибо!
Задача ещё не решена.
Других решений пока нет …