当前位置: 首页 > 知识库问答 >
问题:

如何让Kubernetes吊舱连接到只有节点子集才能到达的目的地?

祁和通
2023-03-14

我有一个Kubernetes V1.13集群,用印花布+法兰绒作为CNI。所有节点都有一个可公开路由的ip地址,并且运行Ubuntu16.04。

一些节点位于公司网络中,同时位于LAN和DMZ中,因此可以访问内部服务,同时仍然可以公开访问。其他的是云提供商的托管VM。

考虑上面的简化示例。我需要一个Kubernetes Pod来访问内部服务器C(它只是一个常规服务器,不是集群的一部分)。我可以只在内部节点B上强制调度Pod,但是由于连接只需要较低的延迟和带宽,而且节点a上有更多的资源,所以我更愿意使用节点B作为某种网关。(考虑几个节点bs,因此实际上没有SPOF)。

共有1个答案

胡元明
2023-03-14

根据你在这里说的:

我可以强制只在内部节点B上调度Pod,但由于连接所需的延迟和带宽很低,而且节点a上的资源更多,所以我更愿意使用节点B作为某种网关。

我想你要找的是大使图案。基本上,您将在b区域中创建此类容器,并且您的通信量将使用clusterIP服务发送到此容器/吊舱,因为它位于集群中。

然后,这些容器内部将运行一个代理(类似于您现在守护进程中的代理),该代理将透明地将通信路由到您所针对的常规服务器。

其他可能有用的链接可能是来自MS的这个或这个幻灯片(P.42)。

如果这与您已经运行的相比有很大的优势,我不确定,但我确实更喜欢只使用吊舱,如果可能的话,尽量减少其他组件

 类似资料:
  • 我在3台裸机Centos7服务器上设置了一个Kubernetes集群,其中有一个主服务器和两个从服务器。为此,我使用了kubeadm,遵循以下指南:https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/并将Weave Net用于pod网络。 为了进行测试,我设置了2个带有服务的default-http-backend

  • 谁能知道我们在库伯内特斯怎样才能做到这一点呢? 谢谢

  • 我已经设置了普罗米修斯,通过跟踪普罗米修斯留档来监控库本内斯的指标。 普罗米修斯现在有很多有用的指标。 但是,我看不到任何引用我的pod或节点状态的指标。 理想情况下-我希望能够绘制pod状态(运行,挂起,CrashLoopBackoff,错误)和节点(NodeNow,就绪)。 这个度量单位在哪里?如果没有,我可以添加到某个地方吗?怎么做?

  • 我可以看到这两个IP,我试图连接使用tcp套接字,绑定他们与tcp端口8080。然而,它表明它没有连接。 我认为这不是使用tcp套接字连接它们的方式。是否有任何方法使一个pod服务器和其他pod客户端和conncet使用tcp套接字。 编辑: Client.C

  • 如何强制调度器以循环方式在节点上运行pod,以便如果任何节点宕机,那么至少有一个节点将NGINX pod处于运行模式。 这到底有没有可能?如果可能,我们如何实现这一场景?

  • 我有一个Kubernetes集群。这些节点位于具有IPs的内部网中,pod网络范围为。 问题是,一些工作节点在其他节点上有无法到达的pod网络路由,例如: 我尝试重新启动一个中断的节点,将其从集群中删除,运行,然后重新加入它。但一切都保持不变。 可能的原因是什么?我应该如何解决这个问题?提前多谢。