---
title: "Виртуальные роутеры в Kubernetes"
description: "Как подключить виртуальный роутер к Kubernetes-кластеру в Timeweb Cloud: настройка воркер-нод без публичных IP, проброс портов для доступа к сервисам и удаление роутера."
---

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

Виртуальный роутер позволяет организовать сетевую архитектуру Kubernetes-кластера без использования публичных IP-адресов на воркер-нодах. В этом случае внешний доступ к сервисам настраивается централизованно — через Ingress или балансировщики нагрузки.

Основные преимущества:

-   Экономия — воркеры не используют публичные IP.
-   Повышенная безопасность — нет прямого доступа к воркер-нодам из интернета.
-   Централизованная точка входа — внешний трафик проходит только через балансировщики или Ingress.
-   Более гибкая архитектура — воркер-ноды не привязаны к внешним IP и могут пересоздаваться без изменения сетевой схемы.

При такой конфигурации инфраструктура становится более декларативной: сетевые правила и точки входа описываются на уровне кластера, а сами ноды остаются «эфемерными» ресурсами.

## Ограничения

Перед настройкой обратите внимание на ограничения и особенности работы виртуальных роутеров:

-   Поддержка доступна только в локациях Санкт-Петербург, Москва и Амстердам.
-   К одному кластеру может быть подключен только один виртуальный роутер.
-   Один виртуальный роутер может использоваться несколькими Kubernetes-кластерами, если они находятся в одной приватной сети.
-   Роутер и кластер должны находиться в одной приватной сети.
-   В настройках виртуального роутера должен быть [включен DHCP для приватной сети](https://timeweb.cloud/docs/virtual-routers/usage-dhcp).
-   У виртуального роутера должен быть подключен публичный IP и настроен NAT для приватной сети.
-   Для каждой группы воркер-нод обязательно должен быть выбран один из вариантов сетевого подключения: использование публичных IP или использование виртуального роутера.

## Подключение роутера при создании кластера

Вы можете подключить виртуальный роутер на этапе создания нового кластера.

Опция «Публичный IP» на этапе конфигурации воркер-нод отключена по умолчанию. Если оставить ее выключенной, на этапе настройки сети появится возможность выбрать существующий виртуальный роутер или создать новый.

Если в выбранной приватной сети нет подходящего роутера, он будет создан автоматически. При необходимости вы можете изменить параметры нового роутера, нажав кнопку «Изменить параметры».

![Scr 20260216 Omug](https://content.timeweb.com/assets/744223bc-cff8-488a-8e24-89e05bc7678a.png?width=1120&height=1196)

Если при настройке кластера выбран новый роутер, создание кластера может занять немного больше времени — сначала будет создан виртуальный роутер, и только после этого начнется развертывание кластера.

## Подключение роутера к существующему кластеру

Чтобы подключить виртуальный роутер к уже созданному кластеру, перейдите во вкладку «Сеть». В строке «Интеграция с роутерами» нажмите кнопку «Подключить».

![Scr 20260216 Onan](https://content.timeweb.com/assets/148e575f-b04f-49a5-b389-48ba637ae2ac.png?width=2086&height=1486)

В открывшемся меню можно создать новый виртуальный роутер и сразу привязать его к кластеру либо выбрать уже существующий. В списке будут доступны только те роутеры, которые соответствуют требованиям: к ним подключен публичный IP, они находятся в одной приватной сети с кластером, а для этой сети включен DHCP.

После подтверждения настроек роутер будет подключен к кластеру и станет доступен для использования в группах воркер-нод.

![Scr 20260216 Ongh](https://content.timeweb.com/assets/80df61aa-5c2f-4f46-9f89-b3863a4715de.png?width=2568&height=1654)

## Работа с воркер-нодами

К кластеру может быть подключен только один виртуальный роутер, но способ сетевого подключения настраивается отдельно для каждой группы воркер-нод. Вы можете выбрать: использовать виртуальный роутер или назначать публичный IP каждому воркеру.

Для изменения настроек откройте вкладку «Ресурсы». Начните создание новой группы, нажав «Добавить группы», либо откройте параметры существующей группы — нажмите на три точки рядом с нужной группой и выберите «Редактировать группу».

В открывшемся меню доступна настройка «Публичный IP». Если отключить ее, группа будет использовать виртуальный роутер. Если роутер еще не был подключен к кластеру, он создастся автоматически. Если включить «Публичный IP», виртуальный роутер для этой группы использоваться не будет, а каждой воркер-ноде будет назначен собственный публичный адрес.

![Scr 20260219 Murj](https://content.timeweb.com/assets/9cd34a31-e960-4222-a33a-a5edbf09c890.png?width=2070&height=1534)

## Доступ к сервисам через проброс портов

Если кластер подключен к приватной сети вместе с виртуальным роутером, можно организовать внешний доступ к сервису без использования Ingress или балансировщика — через проброс портов на роутере.

В этом случае входящий трафик из интернета сначала поступает на публичный IP виртуального роутера, затем на указанный на нем порт и перенаправляется на приватный IP одной из воркер-нод. Далее запрос попадает на порт `NodePort`, открытый Kubernetes-сервисом, и обрабатывается приложением.

Для такой схемы кластер и виртуальный роутер должны находиться в одной приватной сети, при этом к роутеру должен быть подключен публичный IP и настроен доступ к приватным IP воркер-нод. В кластере должен быть создан сервис с типом `NodePort`, а на самом роутере — правило проброса порта на выбранную ноду и соответствующий порт сервиса.

При настройке стоит учитывать, что проброс выполняется на конкретную ноду. Если она станет недоступна, внешний доступ к сервису также перестанет работать.

### Пример использования

Рассмотрим пример настройки. Создадим простой сервис и настроим к нему доступ из интернета через виртуальный роутер.

Для удобства создадим отдельный namespace, в котором будут находиться все ресурсы:

```bash
kubectl create namespace port-forward-example
```

Создадим `ConfigMap` со статической HTML-страницей. Файл `config-map.yaml`:

```yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: service-config
  namespace: port-forward-example
data:
  index.html: |
    <!DOCTYPE html>
    <html>
    <head>
        <title>Demo Page</title>
    </head>
    <body>
        <h1>Hello from Kubernetes!</h1>
        <p>This is a static page served on port 30000.</p>
    </body>
    </html>
```

Далее создадим `DaemonSet` и сервис. Файл `daemon-set.yaml`:

```yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: service
  namespace: port-forward-example
spec:
  selector:
    matchLabels:
      app: service
  template:
    metadata:
      labels:
        app: service
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
        volumeMounts:
        - name: config-volume
          mountPath: /usr/share/nginx/html
      volumes:
      - name: config-volume
        configMap:
          name: service-config
          items:
          - key: index.html
            path: index.html
---
apiVersion: v1
kind: Service
metadata:
  name: service
  namespace: port-forward-example
spec:
  selector:
    app: service
  ports:
  - port: 80
    targetPort: 80
    nodePort: 30000
  type: NodePort
```

В этом примере используется `DaemonSet`, чтобы поды запускались на каждой воркер-ноде, а сервис с типом `NodePort` открывает порт `30000` на всех нодах кластера.

Применим манифесты:

```bash
kubectl apply -f config-map.yaml
kubectl apply -f daemon-set.yaml
```

Проверим, что поды успешно запущены:

```bash
kubectl get pods -n port-forward-example
```

После этого в панели управления виртуальным роутером настройте проброс порта:

1.  Перейдите в раздел «Проброс портов».
    
2.  Выберите публичный IP и укажите внешний порт.
    
3.  В качестве приватного IP укажите IP одной из воркер-нод.
    
4.  Укажите порт `30000` (NodePort сервиса).
    
5.  Сохраните правило.
    

![Scr 20260323 Oqju](https://content.timeweb.com/assets/3a05ce3d-6802-4352-aa5a-fab75bb5d8ff.png?width=2494&height=1658)

После сохранения правило появится в списке, где будут отображаться публичный IP и внешний порт.

![Scr 20260323 Osjr](https://content.timeweb.com/assets/784f6c35-162e-49ea-9d04-e1b49ee549df.png?width=2070&height=1592)

Для проверки откройте в браузере указанный IP и порт — должна отобразиться страница с текстом «Hello from Kubernetes!».

## Удаление виртуального роутера

Перед удалением виртуального роутера необходимо отвязать его от кластера. Пока роутер используется хотя бы одной группой воркер-нод, возможность удаления в панели управления будет недоступна.

Перейдите во вкладку «Ресурсы». Для каждой группы нажмите на три точки рядом с ее названием, выберите «Редактировать группу» и включите параметр «Публичный IP». После этого виртуальный роутер перестанет использоваться выбранной группой. Повторите действие для всех групп воркер-нод, в которых он был задействован.

Перейдите во вкладку «Ресурсы». Для удаления нажмите на три точки рядом с нужной группой и выберите «Удалить». Повторите действие для всех групп воркер-нод, использующих виртуальный роутер.

Когда роутер больше не используется воркерами, вернитесь во вкладку «Сеть». В строке «Интеграция с роутерами» станет активной кнопка «Отвязать» — нажмите ее, чтобы отключить роутер от кластера.

![Scr 20260216 Olco](https://content.timeweb.com/assets/481fd37c-c9c2-4d7c-90bf-e7e92b77975d.png?width=2112&height=1478)

После отвязки откройте раздел «Сети» → «Роутеры», нажмите на три точки рядом с нужным роутером и выберите «Удалить». Кнопка удаления станет доступной сразу после отключения интеграции с кластером.

![Scr 20260216 Olne](https://content.timeweb.com/assets/21fbfaea-8e3b-44a7-9547-04bb8b147484.png?width=2092&height=1478)
