как получить IP-адрес хост-машины контейнера и имя контейнера в EKS - PullRequest
3 голосов
/ 24 мая 2019

У меня есть файл Docker, и я использовал его для создания образа, а затем использовал сервис EKS для запуска контейнеров.Теперь в моем приложении для целей ведения журнала я беру переменные среды, такие как "container_instance" и "ec2_instance_id", и регистрирую их, чтобы в Elastic Search можно было видеть, из какого контейнера или хоста ec2-машины был создан этот журнал.

Какя могу установить эти 2 данные, когда я запускаю свой контейнер в переменной среды?

1 Ответ

2 голосов
/ 24 мая 2019

В вашей спецификации Kubernetes Pod вы можете использовать нисходящий API , чтобы ввести часть этой информации.Например, чтобы получить имя узла Kubernetes для узла, вы можете установить

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

Имя узла обычно является именем хоста для узла ( в этом примере в документации EKS показан внутренний EC2имена хостов, например).Вы не можете легко получить такие вещи, как идентификатор экземпляра EC2 на уровне модуля.

Вы также можете настроить глобальное ведение журнала на уровне кластера.Документация Kubernetes включает пакетную установку для маршрутизации журналов в Elasticsearch и Kibana .Показанный здесь пример включает только имя модуля в метаданных сообщения журнала, но вы должны быть в состоянии перенастроить базовый fluentd для включения дополнительных метаданных уровня хоста.

...