无法访问 Kubernetes Mariadb 服务

Kubernetes Mariadb service cannot be accessed

我想用 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端口没有监听,不知道是不是错了。

您好,欢迎来到 Whosebug。

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

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

因此,为了从您的应用程序连接到您的 pod:

  1. 解决您的自定义 mysql 图像的问题,使其实际侦听端口 3306(或您在图像中配置的任何内容)