Переконфігурація стандартного CIDR Service Kubernetes

СТАН ФУНКЦІОНАЛУ: Kubernetes v1.33 [stable] (стандартно увімкнено: true)

У цьому документі описано, як переналаштувати стандартний діапазон IP-адрес Service, призначених кластеру.

Перш ніж ви розпочнете

Вам треба мати кластер Kubernetes, а також інструмент командного рядка kubectl має бути налаштований для роботи з вашим кластером. Рекомендується виконувати ці настанови у кластері, що має щонайменше два вузли, які не виконують роль вузлів управління. Якщо у вас немає кластера, ви можете створити його, за допомогою minikube або використовувати одну з цих пісочниць:

Версія вашого Kubernetes сервера має бути v1.33.

Для перевірки версії введіть kubectl version.

Переналаштування стандартного CIDR Service Kubernetes

У цьому документі пояснюється, як керувати діапазоном IP-адрес Service у кластері Kubernetes, який також впливає на підтримувані кластером сімейства IP-адрес для Service.

Сімейства IP-адрес, доступні для Service ClusterIP-адрес, визначаються прапорцем --service-cluster-ip-range у kube-apiserver. Для кращого розуміння розподілу IP-адрес Сервісів зверніться до документації Відстеження розподілу IP-адрес Сервісів.

Починаючи з Kubernetes 1.33, сімейства IP-адрес Service, налаштовані для кластера, відображаються обʼєктом ServiceCIDR з іменем kubernetes. Обʼєкт ServiceCIDR kubernetes створюється першим екземпляром kube-apiserver, який запускається, на основі налаштованого прапорця --service-cluster-ip-range. Для забезпечення узгодженої поведінки кластера всі екземпляри kube-apiserver мають бути налаштовані з однаковими значеннями --service-cluster-ip-range, які мають відповідати стандартному обʼєкту ServiceCIDR kubernetes.

Категорії реконфігурації Kubernetes Service CIDR

Ми можемо класифікувати реконфігурацію CIDR Service за наступними сценаріями:

  • Розширення наявних Service CIDR: Це можна зробити динамічно, додавши нові обʼєкти ServiceCIDR без необхідності переконфігурації kube-apiserver. Будь ласка, зверніться до відповідної документації щодо Розширення діапазонів IP-адрес Service.

  • Перетворення з одного стека на два зі збереженням первинного CIDR сервісу: Це передбачає введення другого сімейства IP-адрес (IPv6 у кластер, що використовує лише IPv4, або IPv4 у кластер, що використовує лише IPv6), при цьому первинне сімейство IP-адрес залишається первинним. Це вимагає оновлення конфігурації kube-apiserver і відповідної модифікації різних компонентів кластера, які повинні працювати з цим додатковим сімейством IP. Ці компоненти включають, але не обмежуються ними, kube-proxy, CNI або мережевий втулок, реалізації mesh-сервісів та DNS-сервіси.

  • Перетворення з подвійного на одинарний зі збереженням CIDR первинного сервісу: Це передбачає видалення вторинного сімейства IP з двостекового кластера, повернення до єдиного сімейства IP зі збереженням початкового первинного сімейства IP. На додаток до реконфігурації компонентів відповідно до нового сімейства IP, вам може знадобитися звернутися до Services, які були явно налаштовані на використання видаленого сімейства IP.

  • Усе, що призводить до зміни основного CIDR сервісу: Повна заміна стандартного ServiceCIDR є складною операцією. Якщо новий ServiceCIDR не перетинається з наявним, це вимагатиме перенумерації всіх наявних Services і зміни сервісу kubernetes.default. Випадок, коли змінюється первинне сімейство IP-адрес, є ще складнішим і може вимагати зміни декількох компонентів кластера (kubelet, мережеві втулки тощо), щоб вони відповідали новому первинному сімейству IP-адрес.

Ручні операції для заміни стандартного CIDR Service

Переналаштування стандартного CIDR Service потребує ручних дій з боку оператора кластера, адміністратора або програмного забезпечення, що керує життєвим циклом кластера. Зазвичай вони включають в себе наступні дії:

  1. Оновлення конфігурації kube-apiserver: Змініть прапорець --service-cluster-ip-range новим діапазоном (діапазонами) IP-адрес.
  2. Переналаштування мережевих компонентів: Це дуже важливий крок, і конкретна процедура залежить від різних мережевих компонентів, що використовуються. Вона може включати оновлення конфігураційних файлів, перезапуск агентів або оновлення компонентів для керування новими CIDR Service і бажаною конфігурацією сімейства IP-адрес для Podʼів. Типовими компонентами можуть бути реалізація Сервісів Kubernetes, таких як kube-proxy, і налаштований мережевий втулок, а також потенційно інші мережеві компоненти, такі як контролери mesh і DNS-сервери, щоб переконатися, що вони можуть коректно обробляти трафік і виконувати виявлення сервісів з новою конфігурацією сімейства IP-адрес.
  3. Керування наявними Сервісами: Сервіси з IP-адресами зі старого CIDR мають бути адресовані, якщо вони не входять до нових налаштованих діапазонів. Варіанти включають відновлення (що призводить до простою і нових призначень IP-адрес) або потенційно складніші стратегії реконфігурації.
  4. Повторне створення внутрішніх сервісів Kubernetes: Сервіс kubernetes.default необхідно видалити та створити заново, щоб отримати IP-адресу з нового CIDR сервісу, якщо первинне сімейство IP-адрес змінено або замінено на іншу мережу.

Ілюстративні кроки реконфігурації

Наступні кроки описують контрольовану реконфігурацію, зосереджену на повній заміні стандартного CIDR Service і перестворенні Service kubernetes.default:

  1. Запустіть kube-apiserver з початковим --service-cluster-ip-range.
  2. Створіть початкові Сервіси, які отримують IP з цього діапазону.
  3. Створіть новий CIDR Service як тимчасову ціль для реконфігурації.
  4. Позначте стандартний CIDR служби kubernetes для видалення (він залишиться в очікуванні через наявні IP-адреси та завершувачі). Це запобігає новим розподілам зі старого діапазону.
  5. Повторно створіть наявні Сервіси. Тепер їм мають бути виділені IP-адреси з нового, тимчасового CIDR Сервісу.
  6. Перезапустіть kube-apiserver з налаштованими новими CIDR Service і вимкніть старий екземпляр.
  7. Видаліть сервіс kubernetes.default. Новий kube-apiserver відтворить його у новому Service CIDR.

Що далі

Змінено May 03, 2025 at 8:54 PM PST: sync upstream (c09d1a7b2f)