gpt4 book ai didi

php - 如何将 PhpMyAdmin 与 Mysql 连接,这两者都托管在 Gcloud 的 Kubernetes 集群中

转载 作者:行者123 更新时间:2023-12-02 11:30:53 24 4
gpt4 key购买 nike

我已经在 Kubernetes 集群中部署了 MySql 和 PhpMyAdmin。我想用用户名和密码登录PMA并连接到Mysql。我有点卡住了。我有 PMA 的外部 IP,它应该连接到我的数据库。
这是我的部署脚本:

对于 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

难道我做错了什么。

甚至可以在 Kubernetes 中部署 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:

如果您能提供帮助,我将不胜感激。谢谢!

最佳答案

这样做的方法是:

  • 使用 PHP My Admin 设置状态集
  • 指向有状态集的服务
  • 指向服务的入口
  • 您的 MySQL 状态集
  • 关于php - 如何将 PhpMyAdmin 与 Mysql 连接,这两者都托管在 Gcloud 的 Kubernetes 集群中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50134116/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com