OpenShift- POD如何互相解析



i m试图在OpenShift上让Cloudera Manager和Cloudera代理,以便运行安装,我需要让所有Pods相互通信。

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

现在,我想自动化这个,假设我添加了一个新代理,我希望它可以解决经理和主机(我可以通过将管理器名称作为ENV变量传递,并使用一个shell脚本将其添加到/etc/主机,不是理想的方法,而是解决方案(。但是,第二部分将更加困难,很难让经理解决每个新代理商,也可以解决同一服务上的所有其他代理。

我想知道是否有一种方法,所以集群上的每个吊舱都可以解决其他名称?

我必须将Cloudera-Manager用一个POD和另一个服务Cloudera-agent和-LET的Say-3代理商服务。

你有什么想法吗?

谢谢。

不确定,但是看起来您可以从状态群中受益。

还有其他方法可以获取其他PODS IP(例如使用无头服务或直接向服务器请求(,但Statefulsets提供:

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

  • 稳定,持久存储。

  • 许多其他功能促进了像分布式数据库这样的特殊类型群集的部署。不确定我的术语"分布式"在这里是正确的,但是它可以帮助我提醒他们的目的:(。

如果要在某个服务下运行所有POD,请确保使用无头服务(即设置clusterIP: None(。然后,您可以查询本地DNS服务器中的服务,并将收到分配给其的所有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

然后启动您的豆荚(确保给出app:标签以进行分配(,并从其中任何一个查询您的DNS服务器:

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

最新更新