Я использую Kubernetes для развертывания приложения Rails в Google Container Engine.Как подключить Google Cloud SQL от Google Container Engine?
База данных использует Google Cloud SQL.
Я знаю, что IP-адрес базы данных и установить его в мой Kubernetes конфигурационный файл:
# web-controller.yml
apiVersion: v1
kind: ReplicationController
metadata:
labels:
name: web
name: web-controller
spec:
replicas: 2
selector:
name: web
template:
metadata:
labels:
name: web
spec:
containers:
- name: web
image: gcr.io/my-project-id/myapp:v1
ports:
- containerPort: 3000
name: http-server
env:
- name: RAILS_ENV
value: "production"
- name: DATABASE_URL
value: "mysql2://[my_username]:[my_password]@[database_ip]/myapp"
Затем создайте:
$ kubectl create -f web-controller.yml
Из журнала стручок я видел:
$ kubectl logs web-controller-038dl
Lost connection to MySQL server at 'reading initial communication packet', system error: 0
/usr/local/bundle/gems/mysql2-0.3.20/lib/mysql2/client.rb:70:in `connect'
/usr/local/bundle/gems/mysql2-0.3.20/lib/mysql2/client.rb:70:in `initialize'
...
Я могу видеть адрес LoadBalancer Ingress ip-адрес от Kubernetes UI страница в разделе веб-сервиса.
С Консоль разработчиков Google -> Хранение -> SQL, выберите исполняемый файл и нажмите ссылку. От Контроллер доступа -> Авторизация -> Авторизованные сети, добавьте новый элемент и добавьте туда IP. Но результат был тот же.
спасибо. Я использую database_url для подключения удаленного mysql. Поэтому, возможно, я должен добавить это после строки url, например: 'mysql2: // [my_username]: [my_password] @ [database_ip]/myapp? Sslca =/path/to/mysql-ssl-ca-cert.pem' – scho