Wordpress 和 Mysql 连接不适用于 kubernetes

问题描述 投票:0回答:1

我创建了两个 yaml 文件。一种用于 WordPress,一种用于 Mysql。 我可以毫无问题地创建 Pod,并且可以在浏览器中使用终端端口转发来访问 WordPress。 但每当我这样做时,它都会说“建立数据库连接时出错”。我不知道为什么,我需要帮助

我使用 kubectl apply -f ."filename.yaml" 创建了这两个文件

我使用 kubectl port-forward wordpress 8080:80 来端口转发 WordPress

wordpress.yaml:

apiVersion: v1
kind: Pod
metadata:
  name: wordpress
spec:
  containers:
  - name: app
    image: wordpress:latest
    env:
    - name: "WORDPRESS_DB_HOST"
      value: "mysql-service"  
    - name: "WORDPRESS_DB_NAME"
      value: "MysqlDB"
    - name: "WORDPRESS_DB_USER"
      value: "admin"
    - name: "WORDPRESS_DB_PASSWORD"
      value: "Test"
    ports:
    - containerPort: 80

数据库.yaml:

apiVersion: v1
kind: Pod
metadata:
  name: database
  labels: 
    name: mysql-pod
spec:
  containers:
  - name: database
    image: mysql:latest
    env:
      - name: "MYSQL_USER"
        value: "admin"
      - name: "MYSQL_PASSWORD"
        value: "TFBern_3013"
      - name: "MYSQL_DATABASE"
        value: "MysqlDB"
      - name: "MYSQL_ROOT_PASSWORD"
        value: "TFBern_3013"  
    ports:
    - containerPort: 3306
--- # Mysql Service definiert
apiVersion: v1
kind: Service
metadata:
  name: mysql-service
spec:
  ports:
    - port: 3306
  selector:
    name: mysql-pod

我还尝试从 wordpress ping 到数据库,并且没有出现问题。我只是还没弄清楚如何从数据库 ping 到 wordpress,因为我不知道如何在 bash-5.1 上安装 ping 包

wordpress kubernetes
1个回答
0
投票

您的 MySQL pod 似乎缺少 Kubernetes 服务,这对于在 WordPress 和 MySQL pod 之间实现通信至关重要。设置服务的方法如下:

为什么您需要服务

Kubernetes Service 为您的 Pod 提供稳定的 IP 地址并处理负载平衡。如果没有这个,您的 WordPress 配置中使用的主机名“数据库”将无法解析,从而导致连接错误。

更新 MySQL Pod 配置: 向您的 MySQL pod 添加标签,以便服务可以定位它:

# Add under metadata in your database.yaml
 metadata
   name: database
   labels:
     app: database

创建服务: 将其另存为

mysql-service.yaml
:

apiVersion: v1
kind: Service
metadata:
  name: database
spec:
  type: ClusterIP
  ports:
  - port: 3306
    targetPort: 3306
  selector:
    app: database
  1. 应用配置: 运行这些命令:

    kubectl apply -f database.yaml
    kubectl apply -f mysql-service.yaml
    

然后再试一次,您应该不会再收到“无法建立数据库连接”错误了。

如果它仍然存在,请发布更多详细信息,我会分享我的想法。

更新

刚刚看到你有一个 mysql-service,所以正如 David 提到的,设置 WORDPRESS_DB_HOST=mysql-service 你应该没问题。

© www.soinside.com 2019 - 2024. All rights reserved.