kubernetes - 如何从 Pod 中的容器内部获知 Pod 自己的 IP 地址?

标签 kubernetes

Kubernetes为每个容器分配一个IP地址,但是如何从Pod中的容器获取IP地址呢?我从文档中找不到方法。

编辑:我将在 Kubernetes 中运行 Aerospike 集群。并且配置文件需要有自己的IP地址。我正在尝试使用 confd 来设置主机名。如果设置了环境变量,我将使用它。

最佳答案

最简单的答案是确保您的 pod 或复制 Controller yaml/json 文件通过添加下面定义的配置 block 将 pod IP 添加为环境变量。 (下面的 block 还使名称和命名空间可供 pod 使用)

env:
- name: MY_POD_NAME
  valueFrom:
    fieldRef:
      fieldPath: metadata.name
- name: MY_POD_NAMESPACE
  valueFrom:
    fieldRef:
      fieldPath: metadata.namespace
- name: MY_POD_IP
  valueFrom:
    fieldRef:
      fieldPath: status.podIP

重新创建 pod/rc,然后尝试

echo $MY_POD_IP

还可以运行 env 来查看 kubernetes 还为您提供了什么。

关于kubernetes - 如何从 Pod 中的容器内部获知 Pod 自己的 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30746888/

相关文章:

kubernetes - 如何在Kubernetes入口TLS配置中添加中间SSL证书?

kubernetes - 无法访问 Kubernetes 上的 Grafana UI

java - kubernetes 中 Pod 之间基于 Cookie 的 session 持久性

postgresql - chown :/var/lib/postgresql/data/postgresql. conf:只读文件系统

mongodb - 无法通过 kubectl port-forward 连接到 mongodb 副本集

kubernetes - 为节点分配外部 IP

kubernetes - 将发布时间戳附加到 Helm 模板名称

kubernetes - Prometheus找不到自行托管的Kubernetes集群的Apiserver

Node.js 在 Kubernetes 上横向扩展

kubernetes - 在 kubernetes 中通过 YML 将 locust 文件复制到卷中