Kubernetes Django无法通过AKS群集中的群集IP和节点端口连接到MySQL pod

Kubernetes Django无法通过AKS群集中的群集IP和节点端口连接到MySQL pod,kubernetes,azure-aks,Kubernetes,Azure Aks,我在Azure上有一个Kubernetes集群,我创建了MySQL pod和Django pod。我将MySQL pod公开为服务,并尝试从Django连接。我已经在Django的settings.py文件中给出了服务名称,并尝试运行“runserver”,然后我发现下面的错误 操作错误:(2003,“无法连接到'mysqlserv'(111)上的MySQL服务器” 如果我尝试使用“mysql”命令连接,那么它就可以工作了。下面是我使用的命令 “mysql-hmysqlerv-uroot-p”

我在Azure上有一个Kubernetes集群,我创建了MySQL pod和Django pod。我将MySQL pod公开为服务,并尝试从Django连接。我已经在Django的settings.py文件中给出了服务名称,并尝试运行“runserver”,然后我发现下面的错误

操作错误:(2003,“无法连接到'mysqlserv'(111)上的MySQL服务器”

如果我尝试使用“mysql”命令连接,那么它就可以工作了。下面是我使用的命令

“mysql-hmysqlerv-uroot-p”

但令人惊讶的是,如果我在Django pod的/etc/hosts文件(比如10.144.1.5 mysqlserv)中提供Mysql pod IP,那么“runserver”就可以工作了

有人能帮我连接Django pod和mysql pod over service(群集IP)

下面是我的sql server yaml文件

apiVersion: v1 
kind: Pod
metadata:
  name: sqlpod
  labels:
    app: demo
    env: test
spec:
  containers:
    - name: sqlapp-tester-custom
      image: mydockerregistry.com/mysql:5.7
      env:
        - name: SQL_HOST_NAME
          value: sqlapp-tester-custom
        - name: MYSQL_DATABASE
          value: myapp1_db
        - name: MYSQL_ROOT_PASSWORD
          value: myownPassword123
      ports:
        - name: sqlport
          containerPort: 3306
          protocol: TCP
      volumeMounts:
        - name: azurefile
          mountPath: /sql_data
  volumes:
    - name: azurefile
      azureFile:
        secretName: myazure-secret-name
        shareName: my_azure_file_share_name
        readOnly: false

如果pod重新启动或重新创建,clusterip将更改。最好使用服务名称

Kubernetes服务:

您可以查看mysql运行示例:

示例服务yaml:

apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  ports:
  - port: 3306
  selector:
    app: mysql
  clusterIP: None

我建议用wordpress检查一下Mysql的例子:

clusterip会在pod重新启动或重新创建时发生变化。最好使用服务名称。您好,您能分享您的Mysql服务器部署yaml清单吗?@PiotrMalec,谢谢您的回复,我已经添加了我上面的主要问题。@HarshManvar,您好,谢谢您的回复,这就是我来这里了解如何使用服务名的原因。