代码之家  ›  专栏  ›  技术社区  ›  Mohammed Elmehdi EZ-GHARI

OpenShift-POD如何解析彼此的名称

  •  0
  • Mohammed Elmehdi EZ-GHARI  · 技术社区  · 8 年前

    现在我想自动化这一点,假设我添加了一个新的代理,我希望它能够解析管理器和主机(我可以通过将管理器名称作为env变量传递并使用shell脚本将其添加到/etc/hosts来完成部分工作,这不是理想的方式,但仍然是解决方案)。但第二部分将更加困难,让经理解析每个新代理,以及解析同一服务上的每个其他代理。

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

    我必须用一个pod为cloudera manager提供服务,用3个代理为另一个cloudera代理提供服务。

    你知道吗?

    2 回复  |  直到 7 年前
        1
  •  0
  •   rrh    8 年前

    不确定,但看起来你可以从中受益 StatefulSets .

    有其他方法可以获取其他POD IP(如使用无头服务或直接请求serverAPI),但Statefulset提供:

    • 稳定、持久的存储。

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

        2
  •  0
  •   jbndlr    8 年前

    无头服务 (即设置 clusterIP: None ). 然后,您可以查询本地DNS服务器以获取该服务,并将收到分配给该服务的所有POD的A记录:

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

    然后开始你的吊舱(确保 app:

    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
    
    推荐文章