kubernetes服务暴露于主机ip

kubernetes服务暴露于主机ip,kubernetes,Kubernetes,我在我的4节点集群上创建了一个类似于这样的kubernetes服务: kubectl expose deployment distcc-deploy --name=distccsvc --port=8080 --target-port=3632 --type=LoadBalancer 问题是如何将此服务公开给外部ip。没有外部ip,您无法从外部网络ping或访问此服务端点 我不确定我是否需要改变库比德家族或者做一些改变。 理想情况下,我希望服务在主机ip上公开。 像 假设 我有一个运行ngi

我在我的4节点集群上创建了一个类似于这样的kubernetes服务:

kubectl expose deployment distcc-deploy --name=distccsvc --port=8080
 --target-port=3632 --type=LoadBalancer
问题是如何将此服务公开给外部ip。没有外部ip,您无法从外部网络ping或访问此服务端点

我不确定我是否需要改变库比德家族或者做一些改变。 理想情况下,我希望服务在主机ip上公开。 像

假设 我有一个运行nginx服务的4节点虚拟机。我将其公开为lodabalancer服务。如何使用此服务从vm访问nginx


假设服务名为nginxsvc,那么我能做什么呢。对于我的4节点虚拟机,我将如何在这里获得这些信息?

LoadBalancer根据您部署kubernetes的位置执行不同的操作。如果您部署在AWS上(使用kops或其他工具),它将创建一个弹性负载平衡器来公开服务。如果你部署在GCP上,它也会做类似的事情——我现在不知道谷歌的术语。这些是云中的独立虚拟机,用于将流量路由到您的服务。如果您在minikube中玩,LoadBalancer实际上什么都不做,它会做一个节点端口,假设用户理解minikube无法提供真正的负载平衡器


LoadBalancer应该通过一个全新的IP地址公开您的服务。这就是云提供商所做的,他们使用一个单独的公共IP地址请求VM(GCP提供一个静态地址,AWS提供一个DNS)。NodePort将作为运行pod的kubernetes节点上的端口公开。这对于一般部署来说不是一个可行的解决方案,但在开发时可以正常工作。

将类型参数更改为NodePort。您的服务将在一个超过30kup的随机端口上侦听您的节点投票0否决投票接受,因此要求我有一个运行nginx服务的4节点vm。我将其公开为lodabalancer服务。如何使用此服务从vm访问nginx?假设服务名为nginxsvc,是否有办法执行http://:8080。对于我的4节点虚拟机,我将如何在此处获取此信息?您可以在“30000-32767”范围内配置端口,或者通过以下标志覆盖端口:-服务节点端口范围端口范围要为具有节点端口可见性的服务保留的端口范围。例如:“30000-32767”。包括范围的两端。(默认值30000-32767)我可以将服务类型更改为nodeport。。它是否仍然可以作为负载平衡器使用?我已经为我的播客设置了hotspot:true,这样我就可以使用hoostop:port访问各个播客。我的想法是为所有这些主机添加负载平衡功能。@Stock不要使用hostport:true,nodeport几乎等同于hostport,只是它保证在所有节点上都是相同的,而且您还可以获得k8s负载平衡(如果不启用OnlyLocal)向上投票0向下投票接受,所以要求我有一个运行nginx服务的4节点vm。我将其公开为lodabalancer服务。我如何使用此服务从vm访问nginx?假设服务名称为nginxsvc,我有办法执行http://:8080。我如何在这里为我的4节点vm获取此服务?这太复杂了难以阅读。您的群集部署在哪里?哪个云提供商?