Облачная платформаAdvanced

Настройка доступа Intra-VPC

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

В этом разделе описывается, как получить доступ к интранету из контейнера (вне кластера в VPC), включая доступ intra-VPC и кросс-VPC доступ.

Доступ intra-VPC

Производительность доступа к интранету из контейнера зависит от моделей сетей контейнеров кластера.

  • Контейнерная туннельная сеть

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

  • Cloud Native Network 2.0

    В модели Cloud Native Network 2.0 контейнеру назначается IP-адрес из CIDR-блока VPC. CIDR-блок контейнера является подсетью VPC, где находится узел. Контейнер может естественно взаимодействовать с другими адресами в VPC. Если доступ не удаётся, проверьте, разрешает ли группа безопасности соседних ресурсов доступ из CIDR-блока контейнера.

  • Сеть VPC

    Модель сети VPC использует маршруты VPC для пересылки трафика контейнера. CIDR-блок контейнера и VPC узла находятся в разных CIDR-блоках. Когда контейнер получает доступ к другим ресурсам в том же VPC, группы безопасности этих ресурсов должны разрешать трафик из CIDR-блока контейнера.

    Предположим, CIDR-блок кластера — 192.168.10.0/24, а CIDR-блок контейнера — 172.16.0.0/16.

    В VPC (вне кластера) находится ECS с IP-адресом 192.168.10.25. Правила группы безопасности ECS разрешают доступ только из CIDR-блока кластера.

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

    kubectl exec test01-6cbbf97b78-krj6h -it -- /bin/sh
    / # ping 192.168.10.25
    PING 192.168.10.25 (192.168.10.25): 56 data bytes
    ^C
    --- 192.168.10.25 ping statistics ---
    104 packets transmitted, 0 packets received, 100% packet loss

    Настройте группу безопасности, чтобы разрешить доступ из CIDR-блока контейнера 172.16.0.0/16.

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

    $ kubectl exec test01-6cbbf97b78-krj6h -it -- /bin/sh
    / # ping 192.168.10.25
    PING 192.168.10.25 (192.168.10.25): 56 data bytes
    64 bytes from 192.168.10.25: seq=0 ttl=64 time=1.412 ms
    64 bytes from 192.168.10.25: seq=1 ttl=64 time=1.400 ms
    64 bytes from 192.168.10.25: seq=2 ttl=64 time=1.299 ms
    64 bytes from 192.168.10.25: seq=3 ttl=64 time=1.283 ms
    ^C
    --- 192.168.10.25 ping statistics ---
    4 packets transmitted, 4 packets received, 0% packet loss

Доступ между VPC

Доступ между VPC реализуется путем создания соединения peering между VPC.

  • В модели сети контейнерного туннеля контейнер может получить доступ к VPC‑пиру только при включённой связи между сетью узла и VPC‑пиром.
  • Cloud Native Network 2.0 похожа на сеть контейнерного туннеля. Достаточно включить связь между подсетью, в которой находится контейнер, и VPC‑пиром.
  • Каждая сеть VPC имеет отдельный CIDR‑блок контейнера. Помимо CIDR‑блока VPC, также необходимо подключить CIDR‑блок контейнера.

    Предположим, что существует два VPC.

    • vpc-demo: Его CIDR‑блок — 192.168.0.0/16, кластер находится в vpc-demo, а CIDR‑блок контейнера — 10.0.0.0/16.
    • vpc-demo2: Его CIDR‑блок — 10.1.0.0/16.

    Создайте соединение peering с именем peering-demo (локальная VPC — vpc-demo, VPC‑пир — vpc-demo2). Добавьте CIDR‑блок контейнера в маршрут VPC‑пира.

    После этой настройки вы сможете получить доступ к CIDR‑блоку контейнера 10.0.0.0/16 в vpc-demo2. При доступе обратите внимание на конфигурацию группы безопасности и включите настройку портов.

Доступ к другим облачным сервисам

К облачным сервисам, которые взаимодействуют с CCE через интранет, относятся RDS, DCS, Kafka, ModelArts и RabbitMQ.

Помимо сетевых конфигураций, описанных в Intra-VPC Access и Cross-VPC Access, также необходимо проверить whether these cloud services allow external access. Например, экземпляр DCS Redis доступен только IP‑адресам из его trustlist. Как правило, эти облачные сервисы доступны IP‑адресам в той же VPC. Однако CIDR‑блок контейнера в модели сети VPC отличается от CIDR‑блока VPC. Поэтому необходимо добавить CIDR‑блок контейнера в trustlist.

Что делать, если контейнер не может получить доступ к интранету?

Если из контейнера невозможно получить доступ к интранету, выполните следующие действия:

  1. Просмотрите правило группы безопасности однорангового сервера, чтобы проверить, разрешён ли контейнеру доступ к одноранговому серверу.
    • Модель сети туннеля контейнера должна разрешать IP-адрес узла, где расположен контейнер.
    • Модель сети VPC должна разрешать CIDR-блок контейнера.
    • Модель Cloud Native Network 2.0 должна разрешать подсеть, в которой находится контейнер.
  2. Проверьте, настроен ли trustlist для однорангового сервера. Например, к DCS Redis instance можно получить доступ только с IP-адресов, указанных в его trustlist. Добавьте CIDR-блоки контейнера и узла в trustlist.
  3. Проверьте, установлен ли runtime контейнера на одноранговом сервере и конфликтует ли он с CIDR-блоком контейнера в CCE. Если возникнет конфликт сети, доступ будет отклонён.