Использование сетевых зон в Kubernetes
На этой странице описывается, как эффективно использовать сетевые зоны в средах Kubernetes, уделяя особое внимание их настройке через DynaKube.
Чтобы обеспечить бесперебойную настройку, мы настоятельно рекомендуем вам внимательно ознакомиться с этим руководством, прежде чем приступать к настройке. Это позволит сетевым администраторам получить полное представление о необходимых условиях и необходимых этапах, что гарантирует успешное развертывание.
Сетевые зоны в средах Kubernetes
Сетевые зоны играют ключевую роль в управлении и направлении трафика между компонентами Ключ-АСТРОМ, обеспечивая эффективную коммуникацию внутри сети, как в средах Kubernetes, так и в традиционных конфигурациях. Используя сетевые зоны, администраторы сетей могут оптимизировать поток трафика и адаптироваться к средам со строгими сетевыми ограничениями, такими как ограниченные возможности выхода.
Сетевые зоны для компонентов Ключ-АСТРОМ, развернутых в Kubernetes, можно легко настроить с помощью настраиваемого ресурса DynaKube, что обеспечивает индивидуальное и эффективное управление сетью.
Настройка сетевых зон
В этом разделе настройки классифицируются по двум различным сценариям в зависимости от их характеристик:
- Кластер Kubernetes с неограниченным выходом
- Кластер Kubernetes с ограниченным выходом
Кластер Kubernetes с неограниченным выходом
В кластерах Kubernetes без ограничений на выход основными целями сетевых зон являются:
- Эффективное направление трафика, избегая ненужной глобальной маршрутизации
- Фильтрация недоступных конечных точек
Поэтому для оптимального управления трафиком компонентов Ключ-АСТРОМ рекомендуется использовать сетевые зоны.
1. Настройте сетевую зону, задав соответствующее поле networkZone, и убедитесь, что АктивныйШлюз развёрнут в рамках конфигурации DynaKube. Указанная сетевая зона будет автоматически применена Ключ-АСТРОМ Operator к развёрнутым АктивномуШлюзу и ЕдиномуАгенту.
| apiVersion: astromkey.com/v1beta5
kind: DynaKube metadata: ... spec: ... networkZone: my-networkzone # Configures network zone oneAgent: ... activeGate: # Ensures ActiveGate rollout capabilities: - routing - kubernetes-monitoring ... |
2. Примените DynaKube CR к API Kubernetes.
| kubectl apply -f dynakube.yaml |
После подачи заявки Ключ-АСТРОМ Operator развернёт компоненты Ключ-АСТРОМ в соответствии с конфигурацией DynaKube. В ходе развёртывания АктивныхШлюзов и ЕдиныхАгентов получат доступные конечные точки в соответствии с указанной сетевой зоной (с резервным режимом Any ActiveGate) и смогут начать взаимодействие независимо от статуса развёртывания друг друга.
Кластер Kubernetes с ограниченным выходом
В кластерах Kubernetes, где применяется ограничение исходящего трафика, взаимодействие с внешними сетями, как правило, разрешено только компонентам из белого списка. В Ключ-АСТРОМ АктивномШлюзе разработан для этого сценария и служит важнейшим компонентом шлюза, способным централизовать все исходящие соединения с кластером Ключ-АСТРОМ.
Учитывая, что все компоненты Ключ-АСТРОМ должны взаимодействовать исключительно через АктивныйШлюз из белого списка, крайне важно настроить сетевую зону с поддержкой этого требования. Следовательно, сетевая зона должна гарантировать, что для связи будут использоваться только АктивнымШлюзом в указанной сетевой зоне, без использования каких-либо резервных вариантов. Для этого сетевую зону необходимо создать заранее с резервным режимом «None», чтобы предотвратить блокировку компонентов мониторинга Ключ-АСТРОМ.
| Ключ-АСТРОМ Operator версии 0.14.0+ откладывает развёртывание и внедрение ЕдиногоАгента до тех пор, пока не станет доступен хотя бы один АктивныйШлюз. После появления АктивногоШлюза развёртываются ЕдиныеАгенты и выполняется внедрение ЕдиногоАгента. Модули приложений, не внедрённые из-за задержки, необходимо перезапустить вручную. |
Кроме того, может потребоваться настроить прокси-сервер для упрощения контролируемого доступа к сети в кластерах Kubernetes с ограниченным выходом.
1. Выполните следующую команду, чтобы создать сетевую зону в резервном режиме None с помощью API astromkey.
| curl -X PUT https://<environment-fqdn>/api/v2/networkZones/<network-zone-name> \
-H "Authorization: Api-Token <api-token>" \ -H "Content-Type: application/json" \ -d "{ \"fallbackMode\": \"NONE\" }" |
API-токену должно быть назначено разрешение networkZones.write.
2. Настройте сетевую зону, задав соответствующее поле networkZone, и убедитесь, что АктивныйШлюз развернут как часть конфигурации DynaKube.
| apiVersion: astromkey.com/v1beta5
kind: DynaKube metadata: ... spec: ... networkZone: my-networkzone # Configures network zone oneAgent: ... activeGate: # Ensures ActiveGate rollout capabilities: - routing - kubernetes-monitoring ... |
3. Примените DynaKube CR к API Kubernetes.
| kubectl apply -f dynakube.yaml |
После развертывания Ключ-АСТРОМ Operator выполняет следующие шаги.
- Разверните АктивныеШлюзы.
- Проверьте кластер Ключ-АСТРОМ на предмет доступных АктивныхШлюзов с определенным интервалом, пока АктивныйШлюз не станет доступным.
- Разверните ЕдиныеАгенты с доступными конечными точками связи.
- Выполните внедрение ЕдиногоАгента в модули приложений.