【问题标题】:OpenShift - how can pods resolve each other namesOpenShift - 豆荚如何相互解析名称
【发布时间】:2017-06-28 14:08:17
【问题描述】:

我正在尝试在 openshift 上安装 cloudera 管理器和 cloudera 代理,为了运行安装,我需要让所有 pod 相互通信。

我手动修改了管理器上的 /etc/hosts 并添加了所有代理,并在代理上添加了管理器和所有其他代理。

现在我想自动执行此操作,假设我添加了一个新代理,我希望它解析管理器和主机(我可以通过将管理器名称作为环境变量传递并使用shell 脚本将它添加到 /etc/hosts,这不是理想的方式,但仍然是解决方案)。但是第二部分会更难,让经理解决每个新代理,并解决同一服务上的所有其他代理。

我想知道是否有办法让集群上的每个 pod 都可以解析其他名称?

我必须使用一个 pod 为 cloudera-manager 提供服务,并为另一个服务 cloudera-agent 提供 - 让我们说 - 3 个代理。

你有什么想法吗?

谢谢。

【问题讨论】:

    标签: kubernetes openshift cloudera-cdh cloudera-manager kubernetes-pod


    【解决方案1】:

    不确定,但您似乎可以从 StatefulSets 中受益。

    还有其他获取其他 pod ips 的方法(例如使用无头服务或直接向 serverAPI 请求),但 StatefulSets 提供:

    • 稳定、唯一的网络标识符

    • 稳定、持久的存储。

    • 许多其他功能有助于部署特殊类型的集群,例如分布式数据库。不确定我在这里的“分布式”一词是否正确,但它有助于我提醒它们的用途:)。

    【讨论】:

    • 谢谢@lhuser123 的回复,你有这种应用的例子吗?我想查看他们的部署配置以更好地理解。我可以使用它们的 IP 地址解析 pod,我想获得名称解析。谢谢
    • 看看这个example。阅读创建的第二个服务的描述。这是一项类似于@jbndlr 解释的无头服务。它应该允许您获得每个 pod 的名称解析。该名称类似于 podName.service.namespace.svc...。在 statefulSet 中,每个 pod 都将具有不会更改的稳定名称,即使它被重新调度到另一个节点。
    【解决方案2】:

    如果您想让所有 Pod 在某个 Service 下运行,请确保使用 headless Service(即设置 clusterIP: None)。然后,您可以在本地 DNS-Server 中查询该服务,并将收到分配给它的所有 Pod 的 A-Records:

    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: my-sv
      namespace: my-ns
      labels:
        app: my-app
    spec:
      clusterIP: None
      selector:
        app: my-app
    

    然后启动您的 Pod(确保为分配提供 app: 标签)并从其中任何一个查询您的 DNS-Server:

    kubectl exec -ti my-pod --namespace=my-ns -- /bin/bash
    $ nslookup my-sv.my-ns.svc.cluster.local
    Server:     10.255.3.10
    Address:    10.255.3.10#53
    
    Name:   my-sv.my-ns.svc.cluster.local
    Address: 10.254.24.11
    Name:   my-sv.my-ns.svc.cluster.local
    Address: 10.254.5.73
    Name:   my-sv.my-ns.svc.cluster.local
    Address: 10.254.87.6
    

    【讨论】:

    • 感谢@jbndlr 的回复,实际上我认为在我的情况下将 pod 保留在不同的服务中可能很有用。我可以使用 IP 地址解析项目中的所有其他 pod,但我需要的是通过主机名进行解析。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 2013-07-01
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多