Обновление Openshift-Ansible: не удалось получить hostsubnet

Вступление

Я пытаюсь обновить мою установку 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.9 филиал проекта openshift-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

Что, кажется, заставляет playbook продолжаться после этой ошибки, а затем я сталкиваюсь с ошибкой, как описано выше во введении.

Вопрос

Как я могу обновить мою установку Openshift-Ansible, или, что вызывает мою ошибку?

1 ответ

Сделайте 10.0.0.53 (или другой сервер имен со знанием вашей частной сети) вашим основным сервером имен (перейдите к началу /etc/resolv.conf).

Это позволит клиенту openshift получить подсеть хоста. Этого может быть недостаточно для завершения обновления, но это решит эту проблему.

Другие вопросы по тегам