如何在EKS中获取容器宿主机IP地址和容器名称

4

我有一个 Docker 文件,并使用它构建了镜像,然后使用 EKS 服务启动容器。现在,在我的应用程序中,为了记录日志,我正在获取环境变量,如 "container_instance" 和 "ec2_instance_id" 并记录下来,以便我可以看到在 Elastic Search 中,这些日志是从哪个容器或主机 ec2 机器生成的。

我怎样才能在启动容器时设置这两个数据作为环境变量呢?

1个回答

2
在您的 Kubernetes Pod 规范中,您可以使用向下 API注入其中一些信息。例如,要获取节点的 Kubernetes 节点名称,您可以设置:
env:
  - name: MY_NODE_NAME
    valueFrom:
      fieldRef:
        fieldPath: spec.nodeName

节点名称通常是节点的主机名(例如, EKS 文档中的此示例 显示 EC2 内部主机名)。您不能轻松地在每个 Pod 级别获取诸如 EC2 实例 ID 之类的信息。
您还可以在集群级别全局配置日志记录。Kubernetes 文档包括 将日志路由到 Elasticsearch 和 Kibana 的打包设置。其中显示的示例仅在日志消息元数据中包含 Pod 名称,但您应该能够重新配置底层 fluentd 以包含其他主机级元数据。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接