MySQL Соединение из Docker / Kubernetes со строкой соединения - PullRequest
0 голосов
/ 26 февраля 2020

разработка ASP. NET Core 3.0 приложения с централизованной MySQL базой данных.

Я использую строку подключения, которая выглядит следующим образом:

Server=mysql;Database=db-name;Uid=User;Pwd=Pass;SslMode=Preferred;persistsecurityinfo=false;

"mysql" - это внутренняя запись DNS, которая указывает на центральный сервер MySQL. В Visual Studio все работает нормально.

Теперь я хочу развернуть его в kubernetes.

Я уже сделал это с MS SQL успешно. Я создал конечную точку (ep) в kubernetes, указывая на правильный IP:

Name:         mysql
Namespace:    my_namespace
Labels:       <none>
...
Subsets:
  Addresses:          192.168.6.200
  NotReadyAddresses:  <none>
  Ports:
    Name   Port  Protocol
    ----   ----  --------
    mysql  3306  TCP

Events:  <none>

И создал соответствующий сервис Kubernetes:

Name:              mysql
Namespace:         my_namespace
Labels:            <none>
...
Selector:          <none>
Type:              ClusterIP
IP:                10.104.84.99
Port:              mysql  3306/TCP
TargetPort:        3306/TCP
Endpoints:         192.168.6.200:3306
Session Affinity:  None
Events:            <none>

Все это похоже на то, что я делал с MS SQL.

И я могу подтвердить работоспособность сети:

root@kubernetes-server:/application# kv exec application-7c85b5d9d8-9vxhb -- curl mysql:3306
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:04 --:--:--     0J
100   115    0   115    0     0     25      0 --:--:--  0:00:04 --:--:--    25#08S01Got packets out of order

"Получил пакеты из строя" - это определенно ответ от сервера MySQL. Я также мог подтвердить это через Wireshark.

Но приложение не запустится. Я получаю сообщение об ошибке: "Unable to connect to any of the specified MySQL hosts."

Я что-то не так сделал?

Привет, xola

1 Ответ

1 голос
/ 27 февраля 2020

Понял. Это была не строка подключения. К сожалению, я не видел ошибок до этого сообщения об ошибке. Поскольку мы шифруем строку подключения, у нас есть ключ для расшифровки. Ключ дешифрования был установлен неправильно, поэтому приложение хотело установить соединение, используя зашифрованную, а не расшифрованную строку соединения.

Но все равно спасибо!

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