Терминировать TLS-соединения в кластере Managed Kubernetes для Envoy Gateway
Терминирование TLS-соединения для кластера Managed Kubernetes — это процесс расшифровки HTTPS-трафика и перенаправления его на поды Kubernetes в виде HTTP-трафика.
Терминирование TLS-соединения может использоваться:
- для защиты передачи данных между клиентом и сервисом в кластере;
- контроля доступа к сервисам в кластере и защиты от несанкционированного доступа;
- повышения производительности;
- упрощения управления сертификатами.
В кластере Managed Kubernetes процесс терминирования TLS-соединений можно настроить на балансировщике нагрузки. Терминирование TLS-соединения на балансировщике нагрузки доступно в кластерах с версией Kubernetes 1.25 и выше. Вы можете обновить версию кластера.
Сертификатами можно управлять через менеджер сертификатов — добавьте свой пользовательский сертификат или выпустите сертификат Let’s Encrypt®.
- Добавьте пользовательский сертификат или выпустите его в менеджере секретов.
- Создайте балансировщик нагрузки.
- Измените А-запись домена.
1. Добавить или выпустить сертификат
В менеджере сертификатов можно загрузить сертификат, который был выпущен в сторонних центрах сертификации, или выпустить сертификат Let’s Encrypt®.
Добавить сертификат
Выпустить сертификат Let’s Encrypt®
-
Пользовательский сертификат действует только в том проекте, в который он был добавлен. Убедитесь, что вы находитесь в нужном проекте. Для этого откройте меню проектов (название текущего проекта) и выберите проект.
-
В панели управления в верхнем меню нажмите Продукты и выберите Менеджер сертификатов.
-
В разделе Сертификаты нажмите Добавить сертификат.
-
Выберите Пользовательский сертификат.
-
Введите имя сертификата.
-
Вставьте основной сертификат для домена. Он должен начинаться с
-----BEGIN CERTIFICATE-----и заканчиваться-----END CERTIFICATE-----. -
Вставьте приватный ключ. Он должен начинаться с
-----BEGIN PRIVATE KEY-----и заканчиваться-----END PRIVATE KEY-----. -
Опционально: чтобы добавить промежуточный сертификат:
8.1. Отметьте чекбокс Добавить промежуточный сертификат.
8.2. В поле Промежуточный сертификат вставьте сертификат. Он должен начинаться с
-----BEGIN CERTIFICATE-----и заканчиваться-----END CERTIFICATE-----.Если нужно добавить несколько промежуточных сертификатов, убедитесь, что все сертификаты (основной сертификат для домена, промежуточные и корневой) создают полную цепочку. Значение
Issuerосновного сертификата должно совпадать со значениемSubjectпервого промежуточного сертификата, значениеIssuerпервого промежуточного сертификата — сSubjectвторого промежуточного и так далее.Промежуточные сертификаты можно добавить в поле Промежуточный сертификат в любом порядке, важно использовать полную цепочку.
-
Опционально: чтобы добавить корневой сертификат:
9.1. Отметьте чекбокс Добавить корневой сертификат.
9.2. В поле Корневой сертификат вставьте сертификат. Он должен начинаться с
-----BEGIN CERTIFICATE-----и заканчиваться-----END CERTIFICATE-----. -
Нажмите Добавить.
-
Откройте страницу сертификата.
-
Скопируйте UUID сертификата.
2. Создать балансировщик нагрузки
Используйте подраздел Создать балансировщик нагрузки инструкции Создать и настроить балансировщик нагрузки в кластере Managed Kubernetes для Envoy Gateway.
В манифест объекта Gateway в блок annotations добавьте аннотацию:
loadbalancer.openstack.org/default-tls-container-ref: "<certificate_uuid>"
Укажите <certificate_uuid> — универсальный уникальный идентификатор (UUID) сертификата, который вы скопировали в инструкции Добавить или выпустить сертификат.
Созданный балансировщик нагрузки появится в панели управления: в верхнем меню нажмите Продукты и выберите Облачные серверы → раздел Балансировщики → вкладка Балансировщики.
3. Изменить А-запись домена
Вы можете ускорить распространение изменений в ресурсной записи на кэширующие серверы. Для этого за несколько дней до планируемого изменения уменьшите TTL записи до минимально возможного значения. Затем в назначенное время измените ресурсную запись, а когда изменение распространится на кэширующие серверы, верните прежнее значение TTL.
- В панели управления в верхнем меню нажмите Продукты и выберите DNS-хостинг.
- В разделе Доменные зоны откройте страницу зоны.
- В меню группы A-записей выберите Редактировать.
- Измените IP-адрес на адрес балансировщика нагрузки. IP-адрес балансировщика нагрузки можно посмотреть в панели управления: в верхнем меню нажмите Продукты и выберите Облачные серверы → Балансировщики → вкладка Балансировщики → карточка балансировщика.
- Нажмите Сохранить.
- Подождите, пока ресурсная запись обновится на DNS-серверах. Обновление может занимать от TTL группы записей до 72 часов. TTL группы записей можно посмотреть в панели управления: в верхнем меню нажмите Продукты → DNS-хостинг → Доменные зоны → страница зоны → строка записи → поле TTL.
- Опционально: проверьте ресурсную запись. Если спустя 72 часа ресурсная запись не обновилась, создайте тикет.
- Проверьте, что запросы поступают только на балансировщик нагрузки, а на сервере нет запросов от пользователей.