的情况是:
我试图在Kubernetes上部署HDFS。我使用DaemonSet在一个节点上启动一个datanode,而pod的网络模式是hostNetWork
。在HDFS中,datanodes和namenodes通过主机名进行通信。但现在,如果向k8s集群添加一个新节点,则现有节点无法通过新节点的主机名获得新节点的内部IP。
,也就是,,我想通过主机名获取节点的内部IP。库贝-dns现在能这么做吗?或者使用其他方法来缩放k8s上HDFS集群的节点。
非常感谢!
发布于 2018-04-01 11:31:32
参考文献
您可以获得节点名称,节点IP,其中的pod部署如下所示。
spec:
containers:
- name: hdfs-pod
env:
- name: MY_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: MY_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: MY_POD_SERVICE_ACCOUNT
valueFrom:
fieldRef:
fieldPath: spec.serviceAccountName
在DNS用于服务和Pods中,您可以使用pod或名称和命名空间来查询K8S内部DNS。
启用后,将以“pod-ip-address.my-namespace.pod.cluster.local”的形式为豆荚分配DNS A记录。
状态集
考虑使用StatefulSet怎么样?每个荚得到一个特定的名称,并根据名称,能够分配一个特定的角色,例如名称节点。
只需快速搜索,并找到几篇文章在HDFS与K8S/StaefulSet。
https://stackoverflow.com/questions/49596118
复制相似问题