Как связать PhpMyAdmin с Mysql, размещенным в кластере Kubernetes в Gcloud - PullRequest
0 голосов
/ 02 мая 2018

Я развернул 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:

Буду признателен, если вы сможете помочь. Спасибо!

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