介绍

介绍

介绍

我正在尝试将我的 Openshift-Ansible 安装从 3.6 升级到更高版本。

目前,我正在运行以下命令尝试升级到 v3.7:

ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i hosts -k openshift-ansible/playbooks/byo/openshift-cluster/upgrades/v3_7/upgrade.yml

运行时我收到以下失败的任务:

TASK [Check for invalid namespaces and SDN errors] ***********************************************************************************************************************************************************************
fatal: [10.0.0.51]: FAILED! => {"changed": false, "msg": "Failed to GET hostsubnet.", "results": {"cmd": "/usr/bin/oc get hostsubnet -o json -n default", "results": [{}], "returncode": 1, "stderr": "Unable to connect to the server: dial tcp: lookup docker1.foo.bar on 10.0.0.1:53: no such host\n", "stdout": ""}, "state": "list"}

细节

我已经查看release-3.9openshift-ansible项目。

为了简洁起见,我将仅发布hosts我认为相关的文件部分,如果我遗漏了重要细节,请告诉我:

[OSEv3:children]
masters
nodes
etcd

openshift_master_cluster_method=native
openshift_master_cluster_hostname=10.0.0.51
openshift_master_cluster_public_hostname=10.0.0.51
osm_cluster_network_cidr=10.168.0.0/13

[masters]
10.0.0.51

[etcd]
10.0.0.51

[nodes]
10.0.0.51 openshift_node_labels="{'region': 'infra','zone': 'default','node-role.kubernetes.io/compute': 'true'}" openshift_schedulable=true
10.0.0.52 openshift_node_labels="{'region': 'infra','zone': 'default','node-role.kubernetes.io/compute': 'true'}"
10.0.0.53 openshift_node_labels="{'region': 'infra','zone': 'default','node-role.kubernetes.io/compute': 'true'}"

我认为这个错误可能是由于某种名称解析错误引起的,我有一个/etc/resolv.conf内部 10.0.0.53,其中包含以下内容:

nameserver 10.0.0.1
nameserver 10.0.0.53

如果我这样做nslookup docker1.foo.bar 10.0.0.1,我会找不到它,这是预料之中的,因为 10.0.0.1 无法解析内部网络名称。

如果我这样做,我会按预期docker1.foo.bar 10.0.0.53解析名称。10.0.0.51

我之前已经做过的事情

最初,当我upgrade.retry按照上述方法运行时,出现以下错误:

TASK [openshift_excluder : Check the available origin-docker-excluder version is at most of the upgrade target version] **********************************************************************
[DEPRECATION WARNING]: Using tests as filters is deprecated. Instead of using `result|version_compare` use `result is version_compare`. This feature will be removed in version 2.9. 
Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
fatal: [docker1.foo.bar]: FAILED! => {"changed": false, "msg": "Available origin-docker-excluder version 3.9.0 is higher than the upgrade target version"}
    ...

因此,我已将以下内容添加到我的库存文件中:

enable_excluders=false

这似乎使得剧本继续运行而忽略了这个错误,然后我遇到了上面简介中描述的错误。

问题

我如何升级我的 Openshift-Ansible 安装,或者是什么导致了我的错误?

答案1

将 10.0.0.53(或其他了解您私有网络的名称服务器)设为您的基本的名称服务器(移至 顶部/etc/resolv.conf)。

这将允许 openshift 客户端获取主机子网。这可能不足以完成升级,但它将解决这个问题。

相关内容