2016-12-20 5 views
0

Я пытаюсь создать кластер Kubernetes с Vagrant с помощью Ansible playbook, который отлично работает на реальных (linux) серверах. У меня проблема с kubeadm join с бродягой.Vagrant Private Networking

Я использую следующую команду для присоединения узла к кластеру.

kubeadm join --token={{ kube_token.stdout }} {{ hostvars[groups['kubemaster'][0]].ansible_default_ipv4.address }} 

Проблема с бродягой в том, что он интерпретирует:

hostvars[groups['kubemaster'][0]].ansible_default_ipv4.address

как enp0s3 адрес, который, кажется, всегда 10.0.2.15 на всех машинах в моем кластере.

Я попытался явно устанавливая внутрибрюшинна мои машины с помощью:

machine.vm.network :private_network, ip: <ip>, auto_config: false 

, но это устанавливает enp0s8 адрес, так что до сих пор не работает.

Как мне сделать hostvars[groups['kubemaster'][0]].ansible_default_ipv4.address на всех машинах в моей настройке бродяг?

+1

Дело в том, что бродяга всегда определяет 1-й сетевой интерфейс как NAT с IP '10.0.2.15', поэтому он знает его и использует его для ssh в VM. В случае бродяги вам нужно будет прочитать IP из второго сетевого интерфейса –

ответ

0

Вы можете использовать hostvars[groups['kubemaster'][0]].ansible_eth1.ipv4.address , считая, что ваш eth1 - это ваш фактический IP-адрес, который вы хотите. как отметил Фредерик, он использует значение по умолчанию в качестве первого. вы можете сделать ip addr, чтобы найти свои интерфейсы на машине.