Spec-Zone.ru › Kubernetes

Сервис

Сервис — это именованная абстракция программного сервиса (например, mysql), состоящая из локального порта (например, 3306), который прослушивает прокси, и селектора, определяющего, какие поды будут отвечать на запросы, отправленные через прокси.
Документация по концепции Service
  • Сервис

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

    1. Сервисы в Kubernetes
    2. Определение сервиса
    3. Тип сервиса
    4. Сервисы без IP-адреса
    5. Обнаружение сервисов
    6. Механизм виртуальной IP-адресации
    7. Внешние IP-адреса
    8. Объект API
    9. Что дальше

apiVersion: v1

import "k8s.io/api/core/v1"

Service

Сервис — это именованная абстракция программного сервиса (например, mysql), состоящая из локального порта (например, 3306), который прослушивает прокси, и селектора, определяющего, какие поды будут отвечать на запросы, отправленные через прокси.

Поле Описание
apiVersion
string
APIVersion определяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind
string
Kind — строковое значение, представляющее ресурс REST, который описывает этот объект. Серверы могут определить его по конечной точке, на которую клиент отправляет запросы. Не может быть обновлено. В CamelCase. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
ObjectMeta
Стандартные метаданные объекта. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec
ServiceSpec
Spec определяет поведение сервиса. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
status
ServiceStatus
Последнее наблюдавшееся состояние сервиса. Заполняется системой. Доступно только для чтения. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

ServiceSpec

ServiceSpec описывает атрибуты, которые пользователь задаёт для сервиса.

Поле Описание
allocateLoadBalancerNodePorts
boolean
allocateLoadBalancerNodePorts определяет, будут ли автоматически выделяться NodePorts для сервисов типа LoadBalancer. Значение по умолчанию — "true". Можно задать значение "false", если балансировщик нагрузки кластера не использует NodePorts. Если вызывающий объект запрашивает определённые NodePorts (указывая значение), эти запросы будут выполнены независимо от этого поля. Это поле можно задавать только для сервисов типа LoadBalancer; оно будет очищено, если тип изменится на любой другой.
clusterIP
string
clusterIP — IP-адрес сервиса, который обычно назначается случайным образом. Если адрес задан вручную, находится в допустимом диапазоне (согласно конфигурации системы) и не используется, он будет выделен сервису; в противном случае создание сервиса завершится ошибкой. Это поле нельзя изменить при обновлении, кроме случаев, когда поле type также изменяется на ExternalName (для которого это поле должно быть пустым) или изменяется с ExternalName (в этом случае это поле можно указать по желанию, как описано выше). Допустимые значения: "None", пустая строка ("") или действительный IP-адрес. Значение "None" создаёт «сервис без IP-адреса» (без виртуального IP), что полезно, когда предпочтительны прямые подключения к конечным точкам и проксирование не требуется. Применяется только к типам ClusterIP, NodePort и LoadBalancer. Если это поле указано при создании сервиса типа ExternalName, создание завершится ошибкой. При обновлении сервиса до типа ExternalName это поле будет очищено. Дополнительная информация: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
clusterIPs
string array
ClusterIPs — список IP-адресов, назначенных этому сервису; обычно они назначаются случайным образом. Если адрес задан вручную, находится в допустимом диапазоне (согласно конфигурации системы) и не используется, он будет выделен сервису; в противном случае создание сервиса завершится ошибкой. Это поле нельзя изменить при обновлении, кроме случаев, когда поле type также изменяется на ExternalName (для которого это поле должно быть пустым) или изменяется с ExternalName (в этом случае это поле можно указать по желанию, как описано выше). Допустимые значения: "None", пустая строка ("") или действительный IP-адрес. Значение "None" создаёт «сервис без IP-адреса» (без виртуального IP), что полезно, когда предпочтительны прямые подключения к конечным точкам и проксирование не требуется. Применяется только к типам ClusterIP, NodePort и LoadBalancer. Если это поле указано при создании сервиса типа ExternalName, создание завершится ошибкой. При обновлении сервиса до типа ExternalName это поле будет очищено. Если это поле не указано, оно будет инициализировано значением поля clusterIP. Если это поле указано, клиенты должны гарантировать, что clusterIPs[0] и clusterIP имеют одинаковое значение. Это поле может содержать не более двух элементов (IP-адреса для двух стеков в любом порядке). Эти IP-адреса должны соответствовать значениям поля ipFamilies. Поля clusterIPs и ipFamilies управляются полем ipFamilyPolicy. Дополнительная информация: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
externalIPs
string array
externalIPs — список IP-адресов, для которых узлы кластера также будут принимать трафик этого сервиса. Kubernetes не управляет этими IP-адресами. Пользователь отвечает за то, чтобы трафик поступал на узел с этим IP-адресом. Типичный пример — внешние балансировщики нагрузки, не являющиеся частью системы Kubernetes.
externalName
string
externalName — внешняя ссылка, которую механизмы обнаружения будут возвращать как псевдоним этого сервиса (например, запись DNS CNAME). Проксирование не выполняется. Имя должно быть в нижнем регистре и соответствовать RFC-1123 (https://tools.ietf.org/html/rfc1123); для этого поля требуется, чтобы `type` имел значение "ExternalName".
externalTrafficPolicy
string
externalTrafficPolicy описывает, как узлы распределяют трафик сервиса, полученный на одном из «внешних» адресов сервиса (NodePorts, ExternalIPs и IP-адресах LoadBalancer). Если задано значение "Local", прокси настроит сервис так, чтобы предполагалось, что внешние балансировщики нагрузки будут распределять трафик сервиса между узлами; поэтому каждый узел будет направлять трафик только к локальным конечным точкам сервиса, не подменяя исходный IP-адрес клиента. (Трафик, ошибочно отправленный на узел без конечных точек, будет отброшен.) Значение по умолчанию "Cluster" использует стандартное поведение — равномерную маршрутизацию ко всем конечным точкам (возможно, с учётом топологии и других возможностей). Обратите внимание: трафик, отправленный на внешний IP-адрес или IP-адрес LoadBalancer изнутри кластера, всегда обрабатывается по правилам "Cluster", однако клиентам, отправляющим запросы на NodePort изнутри кластера, при выборе узла может потребоваться учитывать политику трафика.

Возможные значения перечисления:
- `"Cluster"` направляет трафик ко всем конечным точкам.
- `"Local"` сохраняет исходный IP-адрес трафика, направляя его только к конечным точкам на том же узле, на который он поступил (трафик отбрасывается, если локальных конечных точек нет).
healthCheckNodePort
integer
healthCheckNodePort задаёт порт NodePort для проверки работоспособности сервиса. Применяется только тогда, когда type имеет значение LoadBalancer, а externalTrafficPolicy — Local. Если значение указано, находится в допустимом диапазоне и не используется, будет использовано это значение. Если оно не указано, значение будет выделено автоматически. Внешние системы (например, балансировщики нагрузки) могут использовать этот порт, чтобы определить, есть ли на данном узле конечные точки этого сервиса. Если это поле указано при создании сервиса, которому оно не требуется, создание завершится ошибкой. При обновлении сервиса, если это поле больше не требуется (например, при изменении типа), оно будет очищено. Это поле нельзя изменить после установки.
internalTrafficPolicy
string
InternalTrafficPolicy описывает, как узлы распределяют трафик сервиса, полученный на ClusterIP. Если задано значение "Local", прокси будет исходить из того, что поды должны обращаться только к конечным точкам сервиса на том же узле, что и сам под; если локальных конечных точек нет, трафик будет отброшен. Значение по умолчанию "Cluster" использует стандартное поведение — равномерную маршрутизацию ко всем конечным точкам (возможно, с учётом топологии и других возможностей).

Возможные значения перечисления:
- `"Cluster"` направляет трафик ко всем конечным точкам.
- `"Local"` направляет трафик только к конечным точкам на том же узле, что и клиентский под (трафик отбрасывается, если локальных конечных точек нет).
ipFamilies
string array
IPFamilies — список семейств IP-адресов (например, IPv4, IPv6), назначенных этому сервису. Обычно это поле назначается автоматически на основе конфигурации кластера и поля ipFamilyPolicy. Если поле указано вручную, запрошенное семейство доступно в кластере и это допускается значением ipFamilyPolicy, оно будет использовано; в противном случае создание сервиса завершится ошибкой. Это поле можно изменять при определённых условиях: оно позволяет добавлять или удалять вторичное семейство IP-адресов, но не позволяет менять основное семейство IP-адресов сервиса. Допустимые значения: "IPv4" и "IPv6". Это поле применяется только к сервисам типов ClusterIP, NodePort и LoadBalancer, а также к сервисам без IP-адреса. При обновлении сервиса до типа ExternalName это поле будет очищено. Это поле может содержать не более двух элементов (семейства для двух стеков в любом порядке). Если поле clusterIPs указано, эти семейства должны соответствовать его значениям. Поля clusterIPs и ipFamilies управляются полем ipFamilyPolicy.
ipFamilyPolicy
string
IPFamilyPolicy представляет запрошенную или необходимую для этого сервиса поддержку двух стеков. Если значение не указано, этому полю будет присвоено значение SingleStack. Сервисы могут быть типа "SingleStack" (одно семейство IP-адресов), "PreferDualStack" (два семейства IP-адресов в кластерах с настроенной поддержкой двух стеков или одно семейство в кластерах с одним стеком) или "RequireDualStack" (два семейства IP-адресов в кластерах с настроенной поддержкой двух стеков; в противном случае операция завершится ошибкой). Поля ipFamilies и clusterIPs зависят от значения этого поля. При обновлении сервиса до типа ExternalName это поле будет очищено.

Возможные значения перечисления:
- `"PreferDualStack"` указывает, что сервис предпочитает использовать два стека, если кластер настроен для работы с двумя стеками. Если кластер не настроен для работы с двумя стеками, сервису будет назначено одно семейство IP-адресов. Если семейство IP-адресов не задано в service.spec.ipFamilies, сервису будет назначено семейство IP-адресов, используемое в кластере по умолчанию
- `"RequireDualStack"` указывает, что для сервиса требуется поддержка двух стеков. Использование IPFamilyPolicyRequireDualStack в кластере с одним стеком приведёт к ошибкам проверки. Семейства IP-адресов (и их порядок), назначенные сервису, определяются значением service.spec.ipFamilies. Если service.spec.ipFamilies не указано, семейства назначаются в соответствии с настройками кластера. Если в service.spec.ipFamilies указан только один элемент, apiserver добавит альтернативное семейство IP-адресов
- `"SingleStack"` указывает, что для сервиса требуется одно семейство IP-адресов. Назначаемое семейство IP-адресов определяется семейством, используемым в кластере по умолчанию, либо полем service.spec.ipFamilies
loadBalancerClass
string
loadBalancerClass — класс реализации балансировщика нагрузки, к которому относится этот сервис. Если значение указано, оно должно быть идентификатором в формате метки с необязательным префиксом, например "internal-vip" или "example.com/internal-vip". Имена без префикса зарезервированы для конечных пользователей. Это поле можно задать только для сервиса типа 'LoadBalancer'. Если оно не задано, используется реализация балансировщика нагрузки по умолчанию; в настоящее время это обычно обеспечивается интеграцией с поставщиком облачных услуг, но такое поведение должно поддерживаться любой реализацией по умолчанию. Если поле задано, предполагается, что реализация балансировщика нагрузки отслеживает сервисы с соответствующим классом. Любая реализация балансировщика нагрузки по умолчанию (например, предоставляемая облачным провайдером) должна игнорировать сервисы, в которых задано это поле. Это поле можно задать только при создании сервиса или его обновлении до типа 'LoadBalancer'. После установки его нельзя изменить. При обновлении сервиса до типа, отличного от 'LoadBalancer', это поле будет очищено.
loadBalancerIP
string
Применяется только к типу сервиса LoadBalancer. Эта возможность зависит от того, поддерживает ли базовый поставщик облачных услуг указание loadBalancerIP при создании балансировщика нагрузки. Если поставщик облачных услуг не поддерживает эту возможность, поле будет проигнорировано. Устарело: это поле было недостаточно специфицировано, и его значение различается в разных реализациях. Его использование непереносимо и может не поддерживать два стека. Пользователям рекомендуется использовать аннотации, специфичные для реализации, если они доступны.
loadBalancerSourceRanges
string array
Если это поле указано и поддерживается платформой, доступ к трафику через балансировщик нагрузки поставщика облачных услуг будет ограничен указанными IP-адресами клиентов. Если поставщик облачных услуг не поддерживает эту возможность, поле будет проигнорировано. Дополнительная информация: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/
ports
Массив ServicePort
стратегия patch: объединение по ключу port
Список портов, доступных через этот сервис. Дополнительная информация: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
publishNotReadyAddresses
boolean
publishNotReadyAddresses указывает, что любой агент, работающий с конечными точками этого сервиса, должен игнорировать все признаки готовности или неготовности. Основной сценарий использования этого поля — распространение SRV-записей DNS для подов бессетевого сервиса StatefulSet с целью обнаружения узлов. Контроллеры Kubernetes, создающие ресурсы Endpoints и EndpointSlice для сервисов, трактуют это значение так, будто все конечные точки готовы, даже если сами поды не готовы. Агенты, которые используют только конечные точки, созданные Kubernetes в ресурсах Endpoints или EndpointSlice, могут безопасно полагаться на это поведение.
selector
object
Направляет трафик сервиса к подам, метки которых соответствуют ключам и значениям этого селектора. Если поле пустое или отсутствует, предполагается, что конечными точками сервиса управляет внешний процесс, который Kubernetes не будет изменять. Применяется только к типам ClusterIP, NodePort и LoadBalancer. Игнорируется, если type имеет значение ExternalName. Дополнительная информация: https://kubernetes.io/docs/concepts/services-networking/service/
sessionAffinity
string
Поддерживаются значения "ClientIP" и "None". Используется для сохранения привязки сеанса. Включает привязку сеанса на основе IP-адреса клиента. Допустимы только значения ClientIP и None. Значение по умолчанию — None. Дополнительная информация: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

Возможные значения перечисления:
- `"ClientIP"` — привязка на основе IP-адреса клиента.
- `"None"` — привязка сеанса не используется.
sessionAffinityConfig
SessionAffinityConfig
sessionAffinityConfig содержит настройки привязки сеанса.
trafficDistribution
string
TrafficDistribution позволяет задать предпочтения относительно распределения трафика между конечными точками сервиса. Реализации могут использовать это поле как подсказку, но не обязаны гарантировать строгое соблюдение заданных предпочтений. Если поле не задано, реализация применит стратегию маршрутизации по умолчанию. Если задано значение "PreferClose", реализациям следует отдавать предпочтение конечным точкам, расположенным в той же зоне.
type
string
type определяет способ предоставления сервиса. По умолчанию используется ClusterIP. Допустимые значения: ExternalName, ClusterIP, NodePort и LoadBalancer. "ClusterIP" выделяет внутренний IP-адрес кластера для балансировки нагрузки между конечными точками. Конечные точки определяются селектором или, если он не указан, создаются вручную с помощью объекта Endpoints или объектов EndpointSlice. Если clusterIP имеет значение "None", виртуальный IP-адрес не выделяется, а конечные точки публикуются как набор конечных точек, а не как виртуальный IP-адрес. "NodePort" расширяет ClusterIP и выделяет порт на каждом узле, который направляет трафик к тем же конечным точкам, что и clusterIP. "LoadBalancer" расширяет NodePort и создаёт внешний балансировщик нагрузки (если он поддерживается текущей облачной средой), который направляет трафик к тем же конечным точкам, что и clusterIP. "ExternalName" задаёт для этого сервиса псевдоним, указывающий на значение externalName. Некоторые другие поля не применяются к сервисам ExternalName. Дополнительная информация: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types

Возможные значения перечисления:
- `"ClusterIP"` означает, что сервис будет доступен только внутри кластера через IP-адрес кластера.
- `"ExternalName"` означает, что сервис содержит только ссылку на внешнее имя, которое kubedns или аналогичная система вернёт в виде записи CNAME; при этом поды не предоставляются и не проксируются.
- `"LoadBalancer"` означает, что сервис будет доступен через внешний балансировщик нагрузки (если облачный провайдер его поддерживает) в дополнение к типу 'NodePort'.
- `"NodePort"` означает, что сервис будет доступен через один порт на каждом узле в дополнение к типу 'ClusterIP'.

ServiceStatus

ServiceStatus представляет текущее состояние сервиса.

Поле Описание
conditions
Массив Condition
стратегия patch: объединение по ключу type
Текущее состояние сервиса
loadBalancer
LoadBalancerStatus
LoadBalancer содержит текущее состояние балансировщика нагрузки, если он существует.

ServiceList

ServiceList содержит список сервисов.

Поле Описание
apiVersion
string
APIVersion определяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
items *
Массив Service
Список сервисов
kind
string
Kind — строковое значение, представляющее ресурс REST, который описывает этот объект. Серверы могут определить его по конечной точке, на которую клиент отправляет запросы. Не может быть обновлено. В CamelCase. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
ListMeta
Стандартные метаданные списка. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

ClientIPConfig

ClientIPConfig представляет настройки привязки сеанса на основе IP-адреса клиента.

Поле Описание
timeoutSeconds
integer
timeoutSeconds задаёт продолжительность привязки сеанса типа ClientIP в секундах. Если ServiceAffinity == "ClientIP", значение должно быть >0 && \<=86400 (1 день). Значение по умолчанию — 10800 (3 часа).

LoadBalancerIngress

LoadBalancerIngress представляет состояние точки входа балансировщика нагрузки: трафик, предназначенный для сервиса, должен направляться в точку входа.

Поле Описание
hostname
string
Hostname задаётся для точек входа балансировщика нагрузки, основанных на DNS (обычно это балансировщики нагрузки AWS).
ip
string
IP задаётся для точек входа балансировщика нагрузки, основанных на IP-адресах (обычно это балансировщики нагрузки GCE или OpenStack).
ipMode
string
IPMode определяет поведение IP-адреса балансировщика нагрузки. Это поле можно указать только вместе с полем ip. Значение "VIP" означает, что трафик доставляется на узел, а в качестве адреса назначения указаны IP-адрес и порт балансировщика нагрузки. Значение "Proxy" означает, что трафик доставляется на узел или под, а в качестве адреса назначения указываются IP-адрес и порт узла либо IP-адрес и порт пода. Реализации сервисов могут использовать эту информацию для настройки маршрутизации трафика.
ports
Массив PortStatus
Ports — список записей о портах сервиса. Если поле используется, в нём должна быть запись для каждого порта, определённого в сервисе.

LoadBalancerStatus

LoadBalancerStatus представляет состояние балансировщика нагрузки.

Поле Описание
ingress
Массив LoadBalancerIngress
Ingress — список точек входа балансировщика нагрузки. Трафик, предназначенный для сервиса, должен направляться в эти точки входа.

PortStatus

PortStatus представляет состояние ошибки порта сервиса.

Поле Описание
error
string
Error предназначено для записи проблемы с портом сервиса. Формат ошибки должен соответствовать следующим правилам: - встроенные значения ошибок должны быть определены в этом файле и использовать имена в CamelCase; - значения ошибок, специфичные для облачного провайдера, должны иметь имена в формате foo.example.com/CamelCase.
port *
integer
Port — номер порта сервиса, состояние которого записано здесь.
protocol *
string
Protocol — протокол порта сервиса, состояние которого записано здесь. Поддерживаемые значения: "TCP", "UDP", "SCTP".

Возможные значения перечисления:
- `"SCTP"` — протокол SCTP.
- `"TCP"` — протокол TCP.
- `"UDP"` — протокол UDP.

ServicePort

ServicePort содержит сведения о порте сервиса.

Поле Описание
appProtocol
string
Протокол приложения для этого порта. Реализации используют это значение как подсказку, чтобы предоставлять расширенные возможности для поддерживаемых ими протоколов. Это поле соответствует стандартному синтаксису меток Kubernetes. Допустимы следующие значения: * Имена протоколов без префикса — зарезервированы для стандартных имён сервисов IANA (согласно RFC-6335 и https://www.iana.org/assignments/service-names). * Имена с префиксами, определённые Kubernetes: * 'kubernetes.io/h2c' — HTTP/2 без шифрования с предварительным знанием протокола, как описано в https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- * 'kubernetes.io/ws' — WebSocket без шифрования, как описано в https://www.rfc-editor.org/rfc/rfc6455 * 'kubernetes.io/wss' — WebSocket поверх TLS, как описано в https://www.rfc-editor.org/rfc/rfc6455 * Для других протоколов следует использовать имена с префиксами, определяемыми реализацией, например mycompany.com/my-custom-protocol.
name
string
Имя этого порта в рамках сервиса. Оно должно соответствовать формату DNS_LABEL. Все порты в ServiceSpec должны иметь уникальные имена. При выборе конечных точек для сервиса это имя должно совпадать со значением поля 'name' в EndpointPort. Необязательное поле, если в сервисе определён только один ServicePort.
nodePort
integer
Порт на каждом узле, через который предоставляется этот сервис, если его тип — NodePort или LoadBalancer. Обычно назначается системой. Если значение указано, находится в допустимом диапазоне и не используется, оно будет использовано; в противном случае операция завершится ошибкой. Если значение не указано, порт будет выделен, если он требуется этому сервису. Если это поле указано при создании сервиса, которому оно не требуется, создание завершится ошибкой. При обновлении сервиса, если это поле больше не требуется (например, при изменении типа с NodePort на ClusterIP), оно будет очищено. Дополнительная информация: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
port *
integer
Порт, который будет доступен через этот сервис.
protocol
string
IP-протокол для этого порта. Поддерживаются значения "TCP", "UDP" и "SCTP". Значение по умолчанию — TCP.

Возможные значения перечисления:
- `"SCTP"` — протокол SCTP.
- `"TCP"` — протокол TCP.
- `"UDP"` — протокол UDP.
targetPort
Номер или имя порта для доступа к подам, на которые направляет трафик сервис. Номер должен находиться в диапазоне от 1 до 65535. Имя должно соответствовать формату IANA_SVC_NAME. Если указана строка, она будет найдена как именованный порт среди портов контейнеров целевого пода. Если значение не указано, используется значение поля 'port' (отображение тождественно). Это поле игнорируется для сервисов с clusterIP=None; его следует опустить или задать равным полю 'port'. Дополнительная информация: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service

SessionAffinityConfig

SessionAffinityConfig представляет настройки привязки сеанса.

Поле Описание
clientIP
ClientIPConfig
clientIP содержит настройки привязки сеанса на основе IP-адреса клиента.

© 2026 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2026 The Linux Foundation ®. All rights reserved.
https://kubernetes.io/docs/reference/kubernetes-api/core/service-v1/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API