【问题标题】:AWS Kubernetes Cluster - WordPress Error establishing a database connectionAWS Kubernetes 集群 - WordPress 建立数据库连接时出错
【发布时间】:2021-07-10 01:05:56
【问题描述】:

我是 Kubernetes 的新手,尝试使用 Kubernetes pod 容器部署 WordPress 和 MySQL,但在运行 Kubernetes 时抛出错误“建立数据库连接时出错”。

Wordpress Error

Overall Kubect status

AWS Inbound Rules

mysql-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql-deployment
  labels:
    app: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:5.7
        ports:
        - containerPort: 80
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: DEVOPS1
        - name: MYSQL_USER
          value: wpuser
        - name: MYSQL_PASSWORD
          value: DEVOPS12345
        - name: MYSQL_DATABASE
          value: wpdb

mysql-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: mysql-service
spec:
  selector:
    app: mysql
  ports:
    - protocol: TCP
      port: 3306
      targetPort: 3306

wordpress-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: wordpress-deployment
  labels:
    app: wordpress
spec:
  replicas: 3
  selector:
    matchLabels:
      app: wordpress
  template:
    metadata:
      labels:
        app: wordpress
    spec:
      containers:
      - name: wordpress
        image: wordpress
        ports:
        - containerPort: 80
        env:
        - name: WORDPRESS_DB_HOST
          value: mysql-service
        - name: WORDPRESS_DB_USER
          value: wpuser
        - name: WORDPRESS_DB_PASSWORD
          value: wpdb
        - name: WORDPRESS_DEBUG
          value: "1"

wp-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: wordpress-service
spec:
  type: NodePort
  selector:
    app: wordpress
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

我还在 Kubernetes 论坛上打开了相同的帖子。 Click Here查看

【问题讨论】:

  • 您是否有更多关于为什么无法连接的诊断信息?您能否将 YAML 文件稍微缩减为 minimal reproducible example(例如,是否需要或什至使用 PersistentVolume;如果您内联主机名而不是通过 ConfigMap,您会得到相同的错误吗)?当kubectl 之类的命令写出纯文本输出时,您能否将其作为文本直接包含在问题中(而不是图像,而不是链接后面)?
  • 感谢@DavidMaze,根据您的建议。我更新了我的问题。请立即阅读。

标签: mysql wordpress amazon-web-services docker kubernetes


【解决方案1】:

请将您的mysql-deployment 文件中的containerPort80 更改为3306

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql-deployment
  labels:
    app: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:5.7
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: DEVOPS1
        - name: MYSQL_USER
          value: wpuser
        - name: MYSQL_PASSWORD
          value: DEVOPS12345
        - name: MYSQL_DATABASE
          value: wpdb

查看类似问题:wordpress-database-connection-kubernetes.

【讨论】:

  • 我修改了它。但同样的情况也存在。“建立数据库连接时出错” - snipboard.io/Xy2Wih.jpg
  • 您是否检查了 DNS 以查看是否可以从另一个 pod 访问该服务?
猜你喜欢
  • 1970-01-01
  • 2020-07-13
  • 2021-05-28
  • 1970-01-01
  • 2015-08-11
  • 2012-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多