Kubernetes доступ к Google Cloud SQL C# Строка подключения - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть консольное приложение DO TNET Core C#, и у меня есть строка для строки подключения, прямо сейчас, для подключения к локальной базе данных MySql. Я использую следующую строку подключения:

Server=127.0.0.1;Database=database;Uid=root;Pwd=123;

Я настроил экземпляр Google Cloud SQL MySql, создал там базу данных и присвоил ей частный IP-адрес. Я также создал кластер GKE. Я следовал этой документации по подключению из GKE к облаку SQL с использованием частного IP:

https://cloud.google.com/sql/docs/mysql/connect-kubernetes-engine

В этом c говорится, что мне нужно 2 секрета kubernetes, 1 для учетных данных учетной записи службы, которые я использовал ключ, сгенерированный в экземпляре Cloud SQL. Другой должен быть учетными данными базы данных. Как должен выглядеть этот секрет, и как должна выглядеть моя строка подключения, чтобы использовать значения, указанные в секрете.

Я пытался игнорировать секрет учетных данных базы данных и использовал строку подключения. как таковой, только изменяя ip на данный частный IP, думая, что для целей тестирования должно быть достаточно, но безуспешно.

1 Ответ

1 голос
/ 21 апреля 2020

Вот как я получил мою строку подключения:

var dbHost     = Environment.GetEnvironmentVariable("DB_HOST");
var dbName     = Environment.GetEnvironmentVariable("DB_NAME");
var dbUser     = Environment.GetEnvironmentVariable("DB_USER");
var dbPassword = Environment.GetEnvironmentVariable("DB_PASSWORD");

string connectionString = $"server={dbHost};database={dbName};uid={dbUser};pwd={dbPassword};";

И используйте env для контейнера в файле развертывания yml следующим образом:

     env:
        - name: DB_HOST
          value: 127.0.0.1
        - name: DB_NAME
          value: name
        - name: DB_USER
          valueFrom:
            secretKeyRef:
              name: cloudsql-db-credentials
              key: username
        - name: DB_PASSWORD
          valueFrom:
            secretKeyRef:
              name: cloudsql-db-credentials
              key: password

И я создал шаблон c секрет этой команды:

kubectl create secret generic cloudsql-db-credentials --from-literal=username=root --from-literal=password=123
...