如何NodePort
在不使用类型的情况下将类型的服务公开给互联网LoadBalancer
?我发现的每个资源都是通过使用负载均衡器来实现的.但我不希望负载平衡其昂贵和不必要的用例因为我正在运行一个postgres
图像实例,它挂载到永久磁盘,我希望能够使用pgAdmin从我的PC连接到我的数据库.如果有可能,请提供更详细的答案,因为我是Kubernetes,GCE和网络的新手.
只是为了记录和更多的上下文我部署运行我的API服务器的3个副本,我通过负载均衡器与set loadBalancerIP连接到另一个部署,运行一个带有NodePort服务的postgres实例,我的API服务器通过它与之通信我的数据库.我的问题是在没有公共访问的情况下维护数据库很难.
使用NodePort
服务类型可以直接使用,例如:
apiVersion: v1 kind: Service metadata: name: nginx spec: type: NodePort ports: - port: 80 nodePort: 30080 name: http - port: 443 nodePort: 30443 name: https selector: name: nginx
更多细节可以在文档中找到.使用的缺点NodePort
是您必须自己负责与提供商防火墙集成.其起始端口也可以在官方文档的配置您的云提供商的防火墙部分中找到.
对于GCE开放,上述所有节点上的公开内容可能如下所示:
gcloud compute firewall-rules create myservice --allow tcp:30080,tcp:30443
一旦到位,您的服务应该可以通过节点的任何公共IP访问.你会发现它们:
gcloud compute instances list