Kubernetes 如何通过主机名获取节点的内部IP
情况是: 我正在尝试在Kubernetes上部署HDFS。我正在使用守护程序在一个节点上启动一个datanode,pod的网络模式是Kubernetes 如何通过主机名获取节点的内部IP,kubernetes,Kubernetes,情况是: 我正在尝试在Kubernetes上部署HDFS。我正在使用守护程序在一个节点上启动一个datanode,pod的网络模式是hostNetWork。在HDFS中,数据节点和名称节点通过主机名进行通信。但是现在,如果我向k8s集群添加一个新节点,现有节点无法通过新节点的主机名获取新节点的内部IP 也就是说,我想通过主机名获取节点的内部IP。kube dns现在可以这样做吗?或者使用其他方法来扩展k8s上HDFS集群的节点 非常感谢 参考文献 您可以获得节点名称,即部署pod的节点IP,如
hostNetWork
。在HDFS中,数据节点和名称节点通过主机名进行通信。但是现在,如果我向k8s集群添加一个新节点,现有节点无法通过新节点的主机名获取新节点的内部IP
也就是说,我想通过主机名获取节点的内部IP。kube dns现在可以这样做吗?或者使用其他方法来扩展k8s上HDFS集群的节点
非常感谢 参考文献
您可以获得节点名称,即部署pod的节点IP,如下所示
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
与中一样,您可以使用pod IP或名称以及命名空间来查询K8S内部DNS
启用后,pod将以“pod ip address.my namespace.pod.cluster.local”的形式分配一个DNS a记录
状态集 考虑使用它怎么样?每个pod都有一个特定的名称,并基于该名称,能够分配一个特定的角色,例如名称节点 只需快速搜索并找到几篇关于使用K8S/StaveSet的HDFS的文章