【问题标题】:Kubernetes - Routable IP to individual PodsKubernetes - 单个 Pod 的可路由 IP
【发布时间】:2016-11-30 13:10:49
【问题描述】:

我有一个托管在 VM 或裸机中的数据库节点集群,我想创建额外的数据库节点(托管在 Kubernetes Pod 中)并让它们加入现有的集群(托管在 VM 或裸机中的集群)。

为了让它们加入集群,每个数据库必须能够通过不同的 IP 和端口解析另一个。在 Kubernetes 网络环境中,这没有问题,现有的 VM 托管数据库之间也没有问题。症结在于,我似乎看不到 VM 托管的数据库单独路由到每个 POD 托管的数据库的方法。是否有 Kubernetes 配置允许我让每个 pod/DB 在特定端口上单独路由,同时为运行集群的主机共享同一个 NIC?我是否需要在每个 POD 前面加上它自己的 Service?

这是我试图通过概念性 IP 地址空间实现的那种配置。

【问题讨论】:

    标签: docker kubernetes


    【解决方案1】:

    我个人针对类似情况采取的方法实际上是让非 kubernetes 环境中的节点能够与它们自己的 pod 通信。根据您的网络配置,这可能很容易实现。

    就我而言,我只是在需要访问我的 k8s 内部的 VM 上运行了 2 个额外的元素: - flannel :这实际上将我的虚拟机绑定到与 k8s pod 运行相同的 flannel 网络 - kube-proxy:使用 iptables 将服务 ips 转换为 pod ips(在我需要通过服务 IP 访问的情况下)

    如果您可以在网关级别解决此问题(即在您的网络网关上设置 flannel/proxy 并通过一些 SNAT 规则对其进行扩充),您可以避免在虚拟机或其主机上设置此问题。

    如果您的数据库坚持您提供的 IP,则为每个 in-k8s 数据库提供 NodePort/LB 服务可能会起作用(不仅用于发现引导,稍后将 IP 替换为数据库的实际 IP - iirc mongo 通常会执行类似的操作那个)

    【讨论】:

      猜你喜欢
      • 2020-01-21
      • 2020-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多