Відновлення кластера після зміни IP-адрес master-нод

1. Опис проблеми

Може виникнути ситуація, коли у всіх мастер-нод Openshift кластера зміниться IP-адреса. Така ситуація можлива в випадку, коли DHCP сервер через певну причину змінить IP-адреси, зарезервовані для мастер-нод. Статична ІР адреса є критичною для etcd компонента Openshift кластера. Після перезавантаження мастер-нод з новими IP адресами система не зможе завантажитись тому як поди etcd компонента будуть очікувати на отримання саме зарезервованих ІР адреси, виданих майстер-нодам при інсталюванні кластера Openshift.

2. Розв’язання проблеми

Дана проблема може бути вирішена двома способами. Першим способом являється статична зміна IP адрес для мастер нод. Після перезавантаження система відновить своє функціонування. Другий спосіб є продовженням першого, за винятком того, що в результаті виконання послідовності дій мастер нодам будуть повернена функція отримання динамічних ІР адрес, зарезервованих DHCP сервером.

3. Опис необхідних інструментів та доступів для розв’язання проблеми

Для вирішення проблеми із зміною ІР адрес мастер-нод необхідний доступ по ssh на мастер-ноди та DHCP сервер.

4. Процедура відновлення мастер-нод

4.1. Спосіб перший

Покрокова процедура відновлення мастер-нод є наступною:

  1. Увійти по ssh на DHCP-інстанс.

  2. Зупинити DHCP сервер командою systemctl stop isc-dhcp-server.

  3. Зробити резервну копію файлу /var/lib/dhcp/dhcp.lease

  4. Увійти по ssh на одну із майстер-нод кластера.

  5. Знайти потрібний мережевий інтерфейс за допомогою команди:

    # nmcli device|grep ovs-interface
    br-ex ovs-interface *connected* ovs-if-br-ex
  6. Перевірити, що це потрібний мережевий інтерфейс. Його ІР адреса повинна відповідати поточним налаштуванням мережі, відмінним повинен бути тільки IP4.ADDRESS[1]

    # nmcli device show *br-ex*
    IP4.ADDRESS[1]:                         10.9.1.235/24
  7. Змінити ІР адресу інстансу на статичну адресу командою, де замість <IP ADDRESS> необхідно вказати потрібну IP-адресу кластера.

    # nmcli connection modify br-ex ipv4.addresses <IP ADDRESS>/24
  8. Перевірити що, мережа працює, виконавши будь-яку мережеву команду, наприклад, перевірити доступність шлюзу за допомогою команди ping:

    # ping 10.9.1.1
  9. Перезапустити майстер-ноду.

  10. Після перезавантаження переконатись, що майстер-нода працює, використовуючи потрібну IP-адресу.

  11. Перевірити, що на цій ноді запущені усі сервісні поди Openshift. Для цього необхідно виконати команду:

    # crictl ps
  12. Перевірити, що після виконання наведених вище кроків стала доступною API Openshift кластера.

  13. Для повноцінного відновлення кластера необхідно повторити процедуру для решти мастер-нод інстансів.

4.2. Спосіб другий

  1. Спосіб другий містить кроки 1-12 із першого способу.

  2. Запустити DHCP сервер командою:

    # systemctl start isc-dhcp-server.
  3. Виконати процедуру по заміні etcd member (мастер-ноди) згідно з документацією в наступному порядку:

  4. Послідовно замінити два наступних непрацюючих etcd member (мастер-ноди).

  5. Перевірити, що всі три мастер-ноди працюють у штатному режимі:

    $ oc get nodes
    NAME                         STATUS   ROLES    AGE   VERSION
    mdtuddm-2n5bl-master-0       Ready    master   25h   v1.20.0+87cc9a4-1079
    mdtuddm-2n5bl-master-1       Ready    master   25h   v1.20.0+87cc9a4-1079
    mdtuddm-2n5bl-master-2       Ready    master   25h   v1.20.0+87cc9a4-1079
  6. Виключити мастер-ноду зі статичною адресою. Після того, як вона перейде в Not Ready стан, виконати заміну даного etcd member (мастер-ноди) згідно з документацією.

  7. Перевірити, що всі три мастер-ноди працюють в штатному режимі. Видалити виключену мастер-ноду зі статичною ІР адресою.