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

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

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

Опис вирішення проблеми

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

Опис необхідних інструментів та доступів для вирішення проблеми

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

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

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

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

  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> необхідно вказати потрібну ІР адресу кластера.

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

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

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

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

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

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

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

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