SQLAlchemy无法连接到Kubernetes中localhost上的Mysql服务器

问题描述

我在Kubernetes中部署了MysqL服务,并创建了一个具有所有特权的数据库(db1)和一个自定义用户(由'bar'标识的'foo'@'localhost')。我可以验证。

但是我的Flask应用程序无法以某种方式连接到它。所以,我打开了调试模式,并得到了

sqlalchemy.exc.OperationalError
sqlalchemy.exc.OperationalError: (pyMysqL.err.OperationalError) (2003,"Can't connect to MysqL server on 'localhost' ([Errno 99] Address not available)")
(Background on this error at: http://sqlalche.me/e/13/e3q8)

这在Linux机器上永远不会发生。这是我的DATABASE_URL MysqL+pyMysqL://foo:bar@localhost:3306/db1 我做错了什么吗?我是kubernetes的新手,我什至不知道如何调试它。如果我没有提供足够的信息,请通知我。

谢谢。


[编辑]

MysqL-deployment.yaml

apiVersion: apps/v1
kind: Deployment
Metadata:
    name: MysqL
    labels:
        app: MysqL
spec:
    replicas: 1
    selector:
        matchLabels:
            app: MysqL
    template:
        Metadata:
            labels:
                app: MysqL
        spec:
            containers:
                - image: MysqL:5.6
                  name: MysqL
                  env:
                    - name: MysqL_ROOT_PASSWORD
                      value: "123"
                  ports:
                    - containerPort: 3306
                      name: MysqL
                  volumeMounts:
                    - name: MysqL-persistent-storage
                      mountPath: /var/lib/MysqL
            volumes:
                - name: MysqL-persistent-storage
                  persistentVolumeClaim:
                    claimName: MysqL-volumeclaim

MysqL-service.yaml

apiVersion: v1
kind: Service
Metadata:
    name: MysqL
    labels:
        app: MysqL
spec:
    type: ClusterIP
    ports:
        - port: 3306
    selector:
        app: MysqL

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)