GCPには2つのプロジェクトがあります。
このポッドが接続できないのはなぜですか?アイデア?
ありがとう。
この問題をGoogleに報告しました: https://issuetracker.google.com/issues/111986281
そして、それはKubernetes 1.9の問題であると言いました:
_Beginning with Kubernetes version 1.9.x, automatic firewall rules have changed such that workloads in your Kubernetes Engine cluster cannot communicate with other Compute Engine VMs that are on the same network, but outside the cluster. This change was made for security reasons.
_
次のリンクに解決策があります: https://cloud.google.com/kubernetes-engine/docs/troubleshooting#autofirewall
基本的に:
まず、クラスターのネットワークを見つけます:gcloud container clusters describe [CLUSTER_NAME] --format=get"(network)"
次に、コンテナに使用されるクラスタのIPv4 CIDRを取得します。
gcloud container clusters describe [CLUSTER_NAME] --format=get"(clusterIpv4Cidr)"
最後に、CIDRをソース範囲として、ネットワークのファイアウォールルールを作成し、すべてのプロトコルを許可します。
_gcloud compute firewall-rules create "[CLUSTER_NAME]-to-all-vms-on-network" --network="[NETWORK]" --source-ranges="[CLUSTER_IPV4_CIDR]" --allow=tcp,udp,icmp,esp,ah,sctp
_
GCPには2つの異なるデータベースサーバーがあるため、構成が異なる場合があります。 GCE VMにインストールされているCloud SQLまたはデータベースサーバーを使用していますか? Cloud SLQの場合、クラスターノードの外部IPアドレスがCloud SQLインスタンスの承認済みネットワークでホワイトリストに登録されていることを確認してください。GCEVMでデータベースを実行している場合は、ファイアウォールルールをチェックして、正しいポートとプロトコルのサーバー。データベースプロセスのバインドアドレスを確認して、外部IPアドレスからの着信接続を受け入れるかどうかを確認することもできます。 (これは、「Sudo netstat -plnt」を実行してプロセスとそのバインディングアドレスを表示することで実行できます)。 このリンク が役立つ場合があります。