我在Azure上有一个Kubernetes集群,因为我创建了MySQL pod和Django pod。我已经将MySQL pod公开为服务,并尝试从Django连接。我在Django的settings.py文件中指定了服务名称,并尝试运行“ runserver”,然后出现以下错误。
OperationalError:(2003,“无法在'mysqlserv'(111)上连接到MySQL服务器”)。
如果我尝试使用“ mysql”命令进行连接,则它正在工作。下面是我使用的命令。
“ mysql -h mysqlerv -u root -p”。
但是令人惊讶的是,如果我在Django pod的/ etc / hosts文件(例如10.144.1.5 mysqlserv)中给Mysql pod IP,那么“ runserver”就可以工作了。
有人可以帮助我通过服务(群集IP)将Django pod与mysql pod连接起来。.
下面是我的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
答案 0 :(得分:1)
如果pod重新启动或重新创建,clusterip将会更改,最好使用服务名称。
Kubernetes服务:https://kubernetes.io/docs/concepts/services-networking/service/
您可以检查mysql运行示例:https://kubernetes.io/docs/tasks/run-application/run-single-instance-stateful-application/
示例服务Yaml:
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
ports:
- port: 3306
selector:
app: mysql
clusterIP: None
我建议使用Wordpress https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/
一次检查该示例。