在我开始之前,我想提一下,我正在使用GKE的免费试用版。我有一个在GKE集群中运行的简单服务器。我有一个用来公开服务器的服务。我正在尝试配置入口控制器并将其附加到此服务。 如果我的服务的类型是LoadBalancer,NodePort,那么一切工作都很完美。但是,如果我的服务是ClusterIP类型,我会得到一个错误消息 error while evaluating the ingress spec: service "default/simple-server" is type "ClusterIP"
, expected "NodePort"
我正在尝试迁移,为我们所有的云SQL实例使用内网IP:s。我已经让它在postgres上工作了,现在正在尝试使用MySQL访问我们的wordpress实例。
问题是我无法从我们的GKE集群中运行的pod中获得工作的连接。
root@******:/var/www/app# mysql --host=10.**.**.* -u *_se -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '10.*.*.*' (110 "Connection timed out")
我读了一本书"kubernetes in action",书中提到了“云提供商上的侵入控制器(例如,在GKE中)要求In宿指出一个NodePort服务”。
当Ingress控制器从服务本身获取Pod并将请求直接路由到IP和端口时,它为什么需要NodePort服务?节点的IP和端口(由NodePort服务提供)用于什么?
到目前为止,我们已经在所有工作负载中使用GKE公共集群。我们创建了第二个私有集群(仍然是GKE),它改进了安全性和可用性(旧集群是单个区域,新集群是区域集群)。我们使用Gitlab.com作为代码,但是在集群中使用自托管的Gitlab运行程序。
运行程序在公共集群上运行良好,所有工作负载都成功完成。然而,在私有集群上,thr的所有kubectl命令都在Unable to connect to the server: dial tcp <IP>:443: i/o timeout error中失败。CI配置没有更改-相同的基本映像,仍然使用带有特定于CI的服务帐户的gcloud SDK