Как docker-compose создает псевдонимы для линкса - PullRequest
0 голосов
/ 30 мая 2018

при запуске docker-compose все контейнеры имеют сетевые псевдонимы для ip других контейнеров, работающих в сети.Как создаются эти псевдонимы?

Мне нужно воссоздать псевдоним в контейнере nginx в кластере Kubernetes, потому что nginx conf не разрешает переменные окружения, и оттуда я обращаюсь запросы прокси к другому контейнеру.Обычно я редактирую файл / etc / hosts, но поскольку docker-compose этого не делает, мне интересно, как создается псевдоним и могу ли я сделать то же самое в моем кластере kubernetes.

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

В кластере kubernetes по умолчанию развернута служба DNS-сервера.

kubectl get svc должен отображать IP-адрес службы DNS.

IP-адрес DNS-сервера находится внутри.файл контейнеров /etc/resolv.conf тоже.

Подробнее см. здесь .

Вы можете указать дополнительные записи в файле /etc/hosts контейнера, используя HostAliases.См. здесь .

Snip:

apiVersion: v1
kind: Pod
metadata:
  name: hostaliases-pod
spec:
  restartPolicy: Never
  hostAliases:
  - ip: "127.0.0.1"
    hostnames:
    - "foo.local"
    - "bar.local"
  - ip: "10.1.2.3"
    hostnames:
    - "foo.remote"
    - "bar.remote"
0 голосов
/ 30 мая 2018

Как написано в документации

Контейнеры для связанной службы доступны с именем хоста, идентичным псевдониму, или именем службы, если псевдоним не указан

Это означает, что если у вас есть файл docker-compose, подобный этому:

version: '3'
services:
  nginx:
     links:
       - app1
     ...
  app1:
    ...

Тогда nginx сможет получить доступ к другому контейнеру с помощью app1.

...