【问题标题】:OpenShift in Azure, nodes fail to start with "instance not found"Azure 中的 OpenShift,节点无法以“未找到实例”开始
【发布时间】:2018-09-20 22:26:50
【问题描述】:

我已经使用 Ansible 的“高级安装”选项在 Azure 中的五个 RedHat 虚拟机上安装了 OpenShift OCP 3.7。在尝试将 cloud-provider 设置为 azure 之前,一切正常。之后,节点无法启动,并显示如下消息:

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-0foo-4,但 OpenShift 中的节点名称是完全限定的域名,例如 foo-0.bar.baz.com,至少 oc get nodes 是这样显示的。在我看来,OpenShift 使用 FQDN 向 Azure 询问信息,而 Azure 找不到。

我的问题是我是否必须仅使用主机名(例如 foo-0)作为 OpenShift 节点名称而不是 FQDN 才能将 OpenShift 连接到 Azure?

如果是这种情况,如何将 OpenShift 安装配置为使用“短”节点名,而不使用域名?

【问题讨论】:

    标签: azure openshift


    【解决方案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,然后将其用作节点名。

    【讨论】:

      猜你喜欢
      • 2019-05-13
      • 1970-01-01
      • 2023-01-19
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      • 2022-11-03
      • 1970-01-01
      • 2017-07-23
      相关资源
      最近更新 更多