2017-11-10 15 views
0

うまくいけば、私は間違ったことをしています。すべてのドキュメントを読んだことがありますが、問題の一番下に行くことはできません私は経験している。私はOSXのbtwを使用しています。作業しているDockerコンテナのソケット経由以外のすべてのシナリオでGoogle Cloud SQLとの接続が可能

もの:

  1. 接続がプロキシを使用してローカルOSからSQLをクラウドへのTCPまたはソケットのどちらかを経由して
  2. 接続し、容器内のプロキシを使用してローカルOSからSQLをクラウドにTCP
  3. 経由
  4. 接続します :TCP
  5. 働いていない

物事を経由して、同じポッド内のプロキシを使用してGKEからクラウドSQL 0
  1. 接続にプロキシを使用してローカルOSからSQLをクラウドに私は、これらの問題の両方が実際には同じです疑うソケット

を経由して、同じポッド内のプロキシを使用してGKEからSQLをクラウドにソケット

  • 接続を経由して含まれています問題。このコマンドを使用して、コンテナ内でプロキシを実行しています。

    docker run -v [PATH]:/cloudsql \ 
    gcr.io/cloudsql-docker/gce-proxy /cloud_sql_proxy -dir=/cloudsql \ 
    -instances=[INSTANCE_CONNECTION_NAME] -credential_file=/cloudsql/[FILE].json 
    

    関連するソケットがディレクトリとともに生成されています。私は次のエラーを取得する接続しようとしたときしかし:

    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/cloudsql/node-sql:us-central1:nodedb' (61) 
    

    私は私はそれが要求を受信して​​いないと思いますどの接続しようとすると、プロキシは、新しい行を生成しない、それは単にReady for new connectionsを待つと言います。

    何が問題になっているのでしょうか、これをさらに解決する方法はありますか?

  • 答えて

    0

    「GossからのSQLをクラウドに接続するには、同じポッドにあるソケットを使用して接続してください」というチュートリアルはhttps://cloud.google.com/sql/docs/mysql/connect-kubernetes-engineに従ってください。 Cloudql-proxyをサイドカーコンテナ(つまり、同じPod内で、しかしTCP上)として使用しているWordPressの実例があります。

    単一のコンテナで複数のプロセスを実行している場合(ベストプラクティスとしては使用しないでください)以外は、「ソケット経由で同じポッド内で」行うことはできません。サイドカーコンテナを使っているなら、TCPを使うことができるので、Unixソケットは必要ありません(さらに、Podのコンテナ間でファイルをどのように共有するのか分かりません)。

    また、私は/local.sockとローカルにファイル/ディレクトリを作成し、それを/remote.sockという名前でコンテナ内に用意しています。これは、ドッカーエンジンが/local.sockがUnixソケットであることを知らず、の通常ファイルを作成するため、動作しない可能性があります。

    関連する問題