Django не может подключиться к модулю MySQL через IP-адрес кластера и Nodeport в кластере AKS - PullRequest
0 голосов
/ 29 января 2020

У меня есть кластер Kubernetes на Azure, в котором я создал MySQL pod и Django pod. Я выставил MySQL pod как службу и пытаюсь подключиться с Django. Я дал имя службы в файле settings.py в Django и попытался запустить "runserver", тогда я получаю ошибку ниже.

OperationalError: (2003, «Не удается подключиться к MySQL серверу на« mysqlserv »(111)»).

Если я пытаюсь подключиться с помощью команды «mysql», тогда это работает. Ниже приведена команда, которую я использовал.

"mysql -h mysqlerv -u root -p".

Но удивительно, если я дам Mysql IP-адрес в / etc / Файл hosts (например, 10.144.1.5 mysqlserv) из Django pod, тогда работает "runserver".

Может ли кто-нибудь помочь мне подключить Django pod с mysql pod over service (IP-адрес кластера) ..

Ниже приведен мой yaml-файл sql -сервера.

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

1 Ответ

1 голос
/ 30 января 2020

clusterip изменится, если pod перезапустить или воссоздать, лучше использовать имя службы.

Kubernetes Services: 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

Я рекомендую проверить этот пример один раз Mysql с wordpress: https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...