Руководство
Доступ и сетевые настройки
Это руководство описывает 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
Создайте или выберите project SSH key
Project-level SSH keys позволяют стандартизировать параметры доступа для нескольких запросов создания VM.
- 2
Создайте сетевой ресурс
Используйте стабильное имя и CIDR, чтобы клиент мог надёжно работать с внутренней адресацией.
- 3
Подключите VM к сети
Attach-call определяет присутствие VM в сети. Update-call используется позже, если нужно изменить internal IP или другие параметры подключения.
- 4
Получите список project public IP resources
Сценарии внешнего доступа начинаются с существующего
publicIpId. Сначала запросите список public IP в проекте. - 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
/projects/{projectId}/ssh-keysСоздание project SSH key.
/projects/{projectId}/networksСоздание network resource.
/projects/{projectId}/networks/{networkId}/vmsПодключение VM к сети.
/projects/{projectId}/networks/{networkId}/vms/{vmId}Изменение internal IP или параметров подключения.
/projects/{projectId}/public-ipsПросмотр public IP resources проекта.
/projects/{projectId}/public-ips/{publicIpId}/port-forwardsСоздание правила внешнего проброса порта.