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

Настройка Intra-VPC Access

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

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

Intra-VPC Access

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

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

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

  • Cloud Native Network 2.0

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

  • VPC network

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

    Предположим, что 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

    Настройте группу безопасности ECS, чтобы разрешить входящий трафик из Под 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

Cross-VPC Access

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

  • В модели сети контейнерного туннеля контейнер может получить доступ к peer VPC только при включённой связи между сетью узла и peer VPC.
  • Cloud Native Network 2.0 аналогична сети контейнерного туннеля. Достаточно включить связь между подсетью, в которой находится контейнер, и peer 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, а peer VPC — vpc-demo2). Добавьте CIDR‑блок контейнера в маршрут peer VPC.

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

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

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

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

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

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

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