Kubernetes Mariadb 服务无法访问

时间:2021-08-01 20:07:47

标签: wordpress kubernetes mariadb

我想用 kubernetes 制作 wordpress,但 wordpress 不能使用来自 mariadb-service 的主机。这是我的脚本

---
apiVersion: v1
kind: Service
metadata:
  name: db-wordpress
  labels:
    app: mariadb-database
spec:
  selector:
    app: mariadb-database
  ports:
  - port: 3306
  clusterIP: None
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mariadb-database
spec:
  selector:
    matchLabels:
      app: mariadb-database
  template:
    metadata:
      labels:
        app: mariadb-database
    spec:
      containers:
      - name: mariadb-database
        image: darywinata/mariadb:1.0
        env:
          - name: MYSQL_ROOT_PASSWORD
            valueFrom:
              secretKeyRef:
                name: database-secret
                key: password
          - name: MYSQL_USER
            value: blibli
          - name: MYSQL_PASSWORD
            valueFrom:
              secretKeyRef:
                name: database-secret
                key: password
          - name: MYSQL_DATABASE
            value: wpdb
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                - key: servicetype
                  operator: In
                  values:
                  - database-mariadb

我已经与这个错误斗争了 1 周,有人可以帮我解决这个问题吗?

注意:docker 容器内的 3306 端口没有监听,idk 这是错误还是错误。

1 个答案:

答案 0 :(得分:1)

您好,欢迎使用 stackoverflow。

您的设置有两个问题。首先,我尝试在本地运行您的 mysql docker 映像,与官方 mysql 映像相比,它不侦听任何端口。没有mysql进程监听任何端口,你将无法连接到它。

此外,您可能需要考虑标准的内部服务类型,而不是带有 clusterIP: None 的服务类型,后者称为无头服务,通常用于有状态集而不是部署。可以找到更多信息on the official documentation

为了从您的应用程序连接到您的 Pod:

  1. 修复自定义 mysql 映像的问题,使其实际侦听端口 3306(或您在映像中配置的任何端口)