Я пытаюсь обновить установленную версию 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 или что вызывает мою ошибку?
Сделайте 10.0.0.53 (или какой-нибудь другой сервер имен со знанием вашей частной сети) своим первичный сервер имен (перейти в начало /etc/resolv.conf
).
Это позволит клиенту openshift получить подсеть хоста. Этого может быть недостаточно для завершения обновления, но это решит проблему.