2016-12-27 3 views
0

У меня есть приложение, работающее в экземпляре EC2. Он запускает несколько контейнеров по сети:Развертывание сети контейнеров в одном контейнере K8s

docker run --name purple \ 
    --net=treeOfPlums \ 
    --net-alias=purple \ 
    -d treeofplums/purple 

docker run --name shiny \ 
    --net=treeOfPlums \ 
    --net-alias=shiny \ 
    -d treeofplums/shiny 

В этом случае контейнеры purple и shiny могут общаться, потому что они оба на treeOfPlums с псевдонимами purple и shiny соответственно.

Я хочу развернуть это приложение на K8s. Я использую minikube для разработки. Я не хочу использовать docker-in-docker здесь, где мое главное приложение - это контейнер, и это закручивает все остальное. Вместо этого я хотел бы сделать их всеми братьями и сестрами.

Мой вопрос: как указать имя сети и псевдонимы контейнеров в этой сети в контейнере K8s?

Использование ключевых слов network и network-alias в развертывании yaml не будет работать. Насколько я понимаю, контейнеры в одном контейнере находятся в одной сети, так что установка псевдонима будет достаточной. Я имею в виду что-то вроде:

spec: 
     containers: 
     - name: purple 
      image: purple 
      network: treeOfPlums 
      net-alias: purple 
    ... 

ответ

2

точка стручков так что контейнеры могут говорить, как будто они находятся на локальном хосте. Вам не нужны дополнительные сетевые трюки между контейнерами в контейнере.

Из документов:

Приложения в стручках все используют один и тот же сетевой пространство имен (тот же IP и порт пространство), и таким образом, может «найти» друг друга и общаться с помощью Localhost. Из-за этого приложения в контейнере должны координировать использование портов портов . Каждый модуль имеет IP-адрес в общем общем сетевом пространстве , который имеет полную связь с другими физическими компьютерами и контейнерами по всей сети.

Имя хоста установлено на имя контейнера для контейнеров приложения внутри контейнера.

В дополнение к определению контейнеров приложений, которые выполняется в контейнере, модуль задает набор разделяемых томов хранилища. Объемы позволяют данным пережить перезагрузку контейнера и совместно использовать среди приложений внутри контейнера.

http://kubernetes.io/docs/user-guide/pods/#motivation-for-pods

Смежные вопросы