Kubernetes Pod IP应该可以从外部网络访问或可ping通-除了主服务器和工作服务器

时间:2019-04-09 12:27:14

标签: networking kubernetes ip external pod

我已经使用NodePort创建了一个部署。已创建Pod,并且Pod具有IP。吊舱中仅运行一个容器。我想从主机或节点之外的外部访问该容器/容器IP。现在,我可以从主机和节点(但不能从我的设备)ping Pod IP。容器/豆荚应该可以从我的设备ping通。我可以从Pod /容器ping我的设备。

需要做什么才能使Pod IP从外部可见/可访问?

3 个答案:

答案 0 :(得分:1)

您需要指向节点上的服务端口(NodePort类型),而不是Pod IP。

kubectl get service <my-service>

检查您获得的端口。然后获取k8s集群中任何节点的IP

kubectl get nodes

达到

telnet <node_ip>:<service_port>

有关服务类型的更多信息:https://kubernetes.io/docs/concepts/services-networking/service/

答案 1 :(得分:0)

如果要访问您的Pod,则应执行以下操作:$ {node-ip}:$ {nodeport}。但是无法通过其clusterIP访问Pod,它仅用于集群内通信。通过将服务更改为LoadBalancer获得外部IP,但是该IP由云提供商接收。

答案 2 :(得分:0)

我同意@Max Lobur和@МартинПетков的结论,即使用https://github.com/braddle/coffee-interface/blob/master/EspressoMachine.interface.php类型的Kubernetes服务可以将基础Pod服务端口代理到对应节点上的池中的某个端口,因此您可能能够在节点IP地址和相关代理端口上到达群集外部的Kubernetes Pod。

或者,您可以通过在特定服务中应用NodePort来实现与目标Kubernetes Pod的通信,以将网络流量传输到相关的Node,但这是非常重要的解决方案,因为它需要在外部实现某些路由IP将网络流量转发到嵌套的Kubernetes节点。