【问题标题】:how to get container host machine ip address and container name in EKS如何在 EKS 中获取容器主机 IP 地址和容器名称
【发布时间】:2019-05-24 18:39:22
【问题描述】:

我有一个 docker 文件,并使用它构建了映像,然后使用 EKS 服务启动容器。现在,在用于记录目的的应用程序中,我使用“container_instance”和“ec2_instance_id”等环境变量并将其记录下来,以便在 Elastic Search 中查看该日志是从哪个容器或主机 ec2 机器生成的。

在环境变量中启动容器时如何设置这两个数据?

【问题讨论】:

    标签: docker kubernetes amazon-eks


    【解决方案1】:

    在您的 Kubernetes Pod 规范中,您可以使用 downward API 来注入其中的一些信息。例如,要获取节点的 Kubernetes 节点名称,可以设置

    env:
      - name: MY_NODE_NAME
        valueFrom:
          fieldRef:
            fieldPath: spec.nodeName
    

    节点名称通常是节点的主机名(例如,this example in the EKS docs 显示 EC2 内部主机名)。您无法轻松获取每个 pod 级别的 EC2 实例 ID。

    您还可以在集群级别全局配置日志记录。 Kubernetes 文档包括 a packaged setup to route logs to Elasticsearch and Kibana。此处显示的示例仅包含日志消息元数据中的 pod 名称,但您应该能够重新配置底层 fluentd 以包含其他主机级元数据。

    【讨论】:

      猜你喜欢
      • 2013-06-14
      • 1970-01-01
      • 2022-06-29
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多