Перейти к основному содержимому

Руководство

Доступ и сетевые настройки

Это руководство описывает control points после провижининга или вокруг него: project SSH-keys, участие VM в приватной сети, внутреннюю адресацию и проброс внешних портов через существующий public IP resource.

Создайте переиспользуемый project SSH key

Если ваш клиент централизованно управляет SSH-доступом, удобнее один раз создать project-level keys и затем использовать их идентификаторы в сценариях создания VM.

curl --request POST \
  --url 'https://client-api.dc.dev.k8s.zenno.services/projects/{projectId}/ssh-keys' \
  --header 'X-API-Key: <api-key>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{
"name": "workstation-key",
"publicKey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA..."
}'

Создайте приватную сеть и подключите VM

Начинайте с project network resource, затем подключайте VM к этой сети с выбранным или автоматически назначенным внутренним адресом.

curl --request POST \
  --url 'https://client-api.dc.dev.k8s.zenno.services/projects/{projectId}/networks' \
  --header 'X-API-Key: <api-key>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{
"name": "backend-private",
"cidr": "10.40.0.0/24"
}'
  1. 1

    Создайте или выберите project SSH key

    Project-level SSH keys позволяют стандартизировать параметры доступа для нескольких запросов создания VM.

  2. 2

    Создайте сетевой ресурс

    Используйте стабильное имя и CIDR, чтобы клиент мог надёжно работать с внутренней адресацией.

  3. 3

    Подключите VM к сети

    Attach-call определяет присутствие VM в сети. Update-call используется позже, если нужно изменить internal IP или другие параметры подключения.

  4. 4

    Получите список project public IP resources

    Сценарии внешнего доступа начинаются с существующего publicIpId. Сначала запросите список public IP в проекте.

  5. 5

    Создайте forwarding rules для внешнего доступа

    Каждое правило связывает публичный порт и протокол с конкретной VM и внутренним service port.

Создайте правило проброса порта

Это правило привязывает внешний порт на существующем project public IP к выбранной VM и внутреннему порту сервиса.

curl --request POST \
  --url 'https://client-api.dc.dev.k8s.zenno.services/projects/{projectId}/public-ips/{publicIpId}/port-forwards' \
  --header 'X-API-Key: <api-key>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{
"vmId": "00000000-0000-0000-0000-000000000000",
"mode": "SpecificPorts",
"protocol": "Tcp",
"externalPort": 8080,
"internalPort": 80
}'

Важное ограничение

Текущая API-поверхность документирует forwarding rules под существующим publicIpId. Если вашему workflow требуется отдельное выделение public IP, ждите обновлённый swagger или используйте provisioning-time public IP options в запросе создания VM.

Связанные endpoint