我已使用Ansible的“高级安装”选项在Azure的五个RedHat虚拟机上安装了OpenShift OCP 3.7。一切正常,直到尝试将云提供商设置为天蓝色。此后,节点无法以如下消息开头:
azure_instances.go:34] error: az.NodeAddresses, az.getIPForMachine(foo-0.bar.baz.com), err=instance not found
cloud_request_manager.go:105] Node addresses from cloud provider for node "foo-0.bar.baz.com" not collected
Azure中虚拟机的名称是foo-0
至foo-4
,但是OpenShift中的节点名称是完全限定的域名,例如foo-0.bar.baz.com
,至少{ {1}}显示。在我看来,OpenShift正在使用Azure无法找到的FQDN向Azure询问信息。
我的问题是我是否只需要使用主机名(例如oc get nodes
)作为OpenShift节点名,而不是FQDN才能将OpenShift连接到Azure?
在这种情况下,如何配置OpenShift安装以使用“短”节点名而不使用域名?
答案 0 :(得分:1)
我找到了解决问题的方法。
在定义环境的Ansible清单中,将带有要用作节点名称的简称的openshift_hostname
变量添加到每个主机。例如,在YAML广告资源中,我们使用:
OSEv3:
...
children:
nodes:
hosts:
foo-0:
openshift_hostname: foo-0
openshift_schedulable: false
first_master: true
foo-1:
openshift_hostname: foo-1
openshift_schedulable: false
foo-2:
openshift_hostname: foo-2
openshift_schedulable: false
foo-3:
openshift_hostname: foo-3
openshift_node_labels: {'region': 'infra', 'zone': 'default'}
foo-4:
openshift_hostname: foo-4
openshift_node_labels: {'region': 'primary', 'zone': 'default'}
...
似乎没有openshift_hostname
,OpenShift安装将使用节点主机名(例如foo-0
)使用DNS查找,并将结果用作节点名。在我们的案例中,我们取回了完全合格的域名,例如foo-0.bar.baz.com
,然后将其用作节点名。