Kubernetes 网络连接本地/容器

问题描述 投票:0回答:2

我是一名开发人员,正在不断提升学习曲线,变得更加 DevOps。

我正在构建一个 Kubernetes 集群。我希望能够“直接”连接到 Pod。我不想通过服务实现负载平衡,我希望能够连接到各个 Pod。

我正在阅读有关网络的内容,但感到不知所措。等我摸清了细节后我自己就会得到答案,但在此之前有没有专家可以回答:

是否有任何 kubernetes 网络选项可以让我从本地直接与各个 pod 进行 TCP/IP 对话?

我绝对愿意在本地运行一些东西来实现这一目标。我真的不在乎它是否覆盖(没有延迟要求)。我想我可以在集群上运行 Calico,在我的机器上运行 Bird。这是真的?有没有人做过类似的事情?

networking kubernetes flannel calico
2个回答
1
投票

有几种选择。

如果您想连接到一个特定的 pod,您只需

kubectl port-forward
即可将本地端口转发到 pod 端口。

如果您需要完整的网络连接,根据您配置集群的方式,您实际上可以使您的电脑成为与 kubernetes 集群相同的覆盖网络的一部分(我使用 weave net 执行类似的操作)。

总而言之,除了端口转发解决方案之外,它更多的是一个通用的网络问题,而不是特定的 kubernetes。但话又说回来,如果你设法成为覆盖层中的对等方,如果你不想使用服务,你仍然需要解决服务发现问题......


0
投票

虽然 kubectl port-forward (如此命令:kubectl port-forward pod/my-pod 8080:80)和 kubectl proxy 是可行的选项,但利用 NodePort 服务或 LoadBalancer 服务是直接访问个人的更强大和可扩展的方法通过 TCP/IP 从本地计算机获取 Pod。 NodePort 服务在每个工作节点的 IP 上分配一个端口,允许您使用 : 访问 pod。 LoadBalancer 服务提供一个外部负载均衡器,将流量转发到 Pod,从而可以通过负载均衡器的外部 IP 进行访问。这些服务类型提供了持久且可用于生产的解决方案,用于将 Pod 暴露给外部流量。

© www.soinside.com 2019 - 2024. All rights reserved.