我正在尝试使用Ansible剧本和Vagrant创建一个Kubernetes集群,该剧本可以在真实(Linux)服务器上完美运行。我在使用vagrant的kubeadm join时遇到问题。

我正在使用以下命令将节点加入集群。

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

我尝试使用以下方法显式设置机器的IP:
machine.vm.network :private_network, ip: < ip >, auto_config: false

但这会设置enp0s8地址,因此仍然无法使用。

如何在我的游标设置中的所有计算机上使hostvars[groups['kubemaster'][0]].ansible_default_ipv4.address不同?

最佳答案

你可以使用hostvars[groups['kubemaster'][0]].ansible_eth1.ipv4.address假设您的eth1是您想要的实际IP。如Frederic所述,它使用默认值作为第一个。您可以执行ip addr在计算机上找到您的接口(interface)。

10-01 13:22