Kubernetes wordpress到mysql的连接问题

Kubernetes wordpress到mysql的连接问题,kubernetes,traefik,kubernetes-ingress,Kubernetes,Traefik,Kubernetes Ingress,我有一个Wordpress pod没有连接到我的SQL DB pod。wordpress mysql部署称为wordpress mysql,因此引用是正确的。这是显示的消息 完成!WordPress已成功复制到/var/www/html 警告:mysqli::mysqli():php\u network\u getaddresses:getaddrinfo 失败:第22行中的名称或服务未知 警告:mysqli::mysqli():(HY000/2002):php\u network\u geta

我有一个Wordpress pod没有连接到我的SQL DB pod。wordpress mysql部署称为wordpress mysql,因此引用是正确的。这是显示的消息

完成!WordPress已成功复制到/var/www/html

警告:mysqli::mysqli():php\u network\u getaddresses:getaddrinfo 失败:第22行中的名称或服务未知

警告:mysqli::mysqli():(HY000/2002):php\u network\u getaddresses: getaddrinfo失败:第22行中的名称或服务未知

MySQL连接错误:(2002)php\u network\u getaddresses:getaddrinfo 失败:名称或服务未知

这是wordpress.yaml文件的代码:

apiVersion: v1
kind: Service
metadata:
  name: frontend
spec:
  selector:

    app: wordpress
  ports:
  - name: web
    port: 80
    targetPort: 80


---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: wp-pv-claim
  labels:
    app: nginx
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
  storageClassName: do-block-storage


---

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: frontend
spec:
  rules:
  - host: test.example.services
    http:
      paths:
      - path: /
        backend:
          serviceName: frontend
          servicePort: web

---



---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: wordpress
  labels:
    app: wordpress
spec:
  selector:
    matchLabels:
      app: wordpress
      tier: frontend
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: wordpress
        tier: frontend
    spec:
      containers:
      - image: wordpress:4.8-apache
        name: wordpress
        env:
        - name: WORDPRESS_DB_HOST
          value: wordpress-mysql
        - name: WORDPRESS_DB_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mysql-pass
              key: password
        ports:
        - containerPort: 80
          name: wordpress
        volumeMounts:
        - name: wordpress-persistent-storage
          mountPath: /var/www/html
      volumes:
      - name: wordpress-persistent-storage
        persistentVolumeClaim:
          claimName: wp-pv-claim
以下是kubectl get services的输出

NAME              TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
frontend          ClusterIP   10.245.131.56   <none>        80/TCP     4m25s
kubernetes        ClusterIP   10.245.0.1      <none>        443/TCP    9m46s
wordpress-mysql   ClusterIP   None            <none>        3306/TCP   5m16s

港口您是否为
wordpress mysql
创建了k8s服务?我在您的
kubectl get services
输出中没有看到群集ip设置。它已创建,但没有群集。我已经用服务细节更新了这个问题,为什么要将wordpress mysql服务的clusterIP设置为None?
clusterIP:None
明确地使其他服务无法访问它。你不想在这里看到它。@DavidMaze这是错误的。Kubernetes将通过服务名称正确解析(在这种特殊情况下,所有内容都应该部署在同一名称空间中,否则服务名称应该只包括名称空间和cluster.local);您是否为
wordpress mysql
创建了k8s服务?我在您的
kubectl get services
输出中没有看到群集ip设置。它已创建,但没有群集。我已经用服务细节更新了这个问题,为什么要将wordpress mysql服务的clusterIP设置为None?
clusterIP:None
明确地使其他服务无法访问它。你不想在这里看到它。@DavidMaze这是错误的。Kubernetes将通过服务名称正确解析(在这种特殊情况下,所有内容都应该部署在同一名称空间中,否则服务名称应该只包含名称空间和cluster.local)。
apiVersion: v1
kind: Service
metadata:
  name: wordpress-mysql
  labels:
    app: wordpress
spec:
  ports:
    - port: 3306
  selector:
    app: wordpress
    tier: mysql
  clusterIP: None