Yandex Cloud
Search
Contact UsGet started
  • Pricing
  • Customer Stories
  • Documentation
  • Blog
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • AI for business
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Center for Technologies and Society
    • Yandex Cloud Partner program
  • Pricing
  • Customer Stories
  • Documentation
  • Blog
© 2025 Direct Cursus Technology L.L.C.
Yandex Managed Service for YTsaurus
  • Getting started
    • All guides
    • Information about existing clusters
    • Creating a cluster
    • Connecting to a cluster
    • Updating a cluster
    • Stopping and starting a cluster
    • Deleting a cluster
  • Access management
  • Pricing policy
  • Terraform reference
  • Audit Trails events
  • Release notes

In this article:

  • Roles for creating a cluster
  • Creating a cluster
  • Demo cluster
  • Production cluster
  • Examples
  1. Step-by-step guides
  2. Creating a cluster

Creating an YTsaurus cluster

Written by
Yandex Cloud
Updated at November 13, 2025
  • Roles for creating a cluster
  • Creating a cluster
    • Demo cluster
    • Production cluster
  • Examples

Note

The service is at the Preview stage.

Each Managed Service for YTsaurus cluster consists of a number of YTsaurus components.

Configurable components:

  • Exec and tablet nodes
  • Storages
  • HTTP and RPC proxies

Non-configurable service components:

  • Master nodes
  • Storage nodes
  • System nodes

Roles for creating a clusterRoles for creating a cluster

To create a Managed Service for YTsaurus cluster, your Yandex Cloud account needs the following roles:

  • managed-ytsaurus.editor: To create a cluster.
  • vpc.user: To use the cluster network.

For more information about assigning roles, see the Yandex Identity and Access Management documentation.

Creating a clusterCreating a cluster

Note

Creating a YTsaurus cluster takes a while, e.g., an hour or more depending on the selected configuration.

In Managed Service for YTsaurus, you can create a Demo cluster with the minimum operational configuration to test the service or a Production cluster supporting manual cluster setup.

Demo clusterDemo cluster

Management console
Terraform
REST API
gRPC API
  1. In the management console, select the folder where you want to create a Managed Service for YTsaurus cluster.

  2. Select Managed Service for YTsaurus.

  3. Click Create cluster.

  4. Select Demo cluster to create a cluster with the minimum operational configuration.

  5. Under Basic parameters:

    1. Give the cluster a name. The name must be unique within the folder.
    2. Optionally, enter a description for the cluster.
    3. Optionally, create labels:
      1. Click Add label.
      2. Enter a label in key: value format.
      3. Press Enter.
  6. Under Network settings, select:

    • Availability zone for the cluster.
    • Subnet.
    • Security group for the cluster’s network traffic. This is an optional setting.

    Warning

    You cannot edit any network settings after you create a cluster.

  7. Under Cluster configuration, view the cluster configuration parameters.

  8. Click Create.

  9. Wait until the cluster is ready: its status on the Managed Service for YTsaurus dashboard will change to Running. This process can take a while.

With Terraform, you can quickly create a cloud infrastructure in Yandex Cloud and manage it using configuration files. These files store the infrastructure description written in HashiCorp Configuration Language (HCL). If you change the configuration files, Terraform automatically detects which part of your configuration is already deployed, and what should be added or removed.

Terraform is distributed under the Business Source License. The Yandex Cloud provider for Terraform is distributed under the MPL-2.0 license.

For more information about the provider resources, see the relevant documentation on the Terraform website or its mirror.

If you do not have Terraform yet, install it and configure the Yandex Cloud provider.

To create a YTsaurus cluster:

  1. In the configuration file, describe the resources you are creating:

    • YTsaurus cluster: Cluster description.

    • Network: Description of the cloud network where a cluster will be located. If you already have a suitable network, you don't have to describe it again.

    • Subnets: Description of the subnets to connect the cluster hosts to. If you already have suitable subnets, you don't have to describe them again.

    Here is an example of the configuration file structure:

    resource "yandex_ytsaurus_cluster" "<cluster_name>" {
    
      description        = "<cluster_description>"
      name               = "<cluster_name>"
      zone_id            = yandex_vpc_subnet.<subnet_name>.zone
      subnet_id          = yandex_vpc_subnet.<subnet_name>.id
      security_group_ids = [<list_of_security_group_IDs>]
    
      spec = {
        storage = {
          hdd = {
            size_gb = 2048
            count   = 3
          }
          ssd = {
            size_gb = 465
            type    = "network-ssd-nonreplicated"
            count   = 3
          }
        }
        compute = [
          {
            preset = "c8-m32"
            disks = [
              {
                size_gb   = 93
                type      = "network-ssd-nonreplicated"
              }
            ]
            scale_policy = {
              fixed = {
                size = 3
              }
            }
          }
        ]
        tablet = {
          preset = "c8-m16"
          count  = 3
        }
        proxy = {
          http = {
            count = 2
          }
          rpc = {
            count = 2
          }
        }
      }
    }
    
    resource "yandex_vpc_network" "<network_name>" { name = "<network_name>" }
    
    resource "yandex_vpc_subnet" "<subnet_name>" {
      name           = "<subnet_name>"
      zone           = "<availability_zone>"
      network_id     = yandex_vpc_network.<network_name>.id
      v4_cidr_blocks = ["<range>"]
    }
    

    Where:

    • description: Cluster description.

    • name: Cluster name.

    • zone_id: Availability zone.

    • subnet_id: Subnet ID.

    • security_group_ids: List of security group IDs.

      Warning

      You cannot edit any network settings after you create a cluster.

    • spec: Configuration of YTsaurus cluster components:

      • storage: Storage parameters:

        • hdd: HDD parameters:

          • size_gb: Disk size in GB.
          • count: Number of disks.
        • ssd: SSD parameters:

          • size_gb: Disk size in GB.
          • type: Disk type.
          • count: Number of disks.

        Warning

        You cannot change the disk type or size for a YTsaurus cluster once you create it.

      • compute: Configuration of exec nodes:

        • preset: Computing resource configuration.

        • disks: Parameters of the storage you will use to run jobs.

          • size_gb: Disk size in GB.
          • type: Disk type.
        • scale_policy.fixed.size: Number of exec nodes for the fixed scaling policy.

      • tablet: Configuration of tablet nodes:

        • preset: Computing resource configuration.
        • count: Number of tablet nodes.

        To use tablet nodes, make sure to specify the SSD storage parameters (spec.storage.ssd).

        Warning

        You cannot edit the number of tablet nodes after you create a cluster.

      • proxy: Proxy parameters:

        • http.count: Number of HTTP proxies.
        • rpc.count: Number of RPC proxies.

    For more information about the resources you can create with Terraform, see this provider guide.

  2. Validate your configuration.

    1. In the command line, navigate to the directory that contains the current Terraform configuration files defining the infrastructure.

    2. Run this command:

      terraform validate
      

      Terraform will show any errors found in your configuration files.

  3. Create a YTsaurus cluster.

    1. Run this command to view the planned changes:

      terraform plan
      

      If you described the configuration correctly, the terminal will display a list of the resources to update and their parameters. This is a verification step that does not apply changes to your resources.

    2. If everything looks correct, apply the changes:

      1. Run this command:

        terraform apply
        
      2. Confirm updating the resources.

      3. Wait for the operation to complete.

    This will create all the resources you need in the specified folder. You can check the new resources and their configuration using the management console.

  1. Get an IAM token for API authentication and save it as an environment variable:

    export IAM_TOKEN="<IAM_token>"
    
  2. Create a file named body.json and paste the following code into it:

    {
      "folderId": "<folder_ID>",
      "name": "<cluster_name>",
      "description": "<cluster_description>",
      "zoneId": "<availability_zone>",
      "subnetId": "<subnet_ID>",
      "securityGroupIds": [ <list_of_security_group_IDs> ],
      "spec": {
        "storage": {
          "hdd": {
            "sizeGb": "2048",
            "count": "3"
          },
          "ssd": {
            "sizeGb": "465",
            "type": "network-ssd-nonreplicated",
            "count": "3"
          }
        },
        "compute": [
          {
            "preset": "c8-m32",
            "disks": [
              {
                "type": "network-ssd-nonreplicated",
                "sizeGb": "93"
              }
            ],
            "scalePolicy": {
              "fixed": {
                "size": "3"
              }
            }
          }
        ],
        "tablet": {
          "preset": "c8-m16",
          "count": "3"
        },
        "proxy": {
          "http": {
            "count": "2"
          },
          "rpc": {
            "count": "2"
          }
        }
      }
    }
    

    Where:

    • folderId: Folder ID. You can get it with the list of folders in the cloud.

    • name: Cluster name.

    • description: Cluster description.

    • zoneId: Availability zone.

    • subnetId: Subnet ID.

    • securityGroupIds: List of security group IDs.

      Warning

      You cannot edit any network settings after you create a cluster.

    • spec: Configuration of YTsaurus cluster components:

      • storage: Storage parameters:

        • hdd: HDD parameters:

          • sizeGb: Disk size in GB.
          • count: Number of disks.
        • ssd: SSD parameters:

          • sizeGb: Disk size in GB.
          • type: Disk type.
          • count: Number of disks.

        Warning

        You cannot change the disk type or size for a YTsaurus cluster once you create it.

      • compute: Configuration of exec nodes:

        • preset: Computing resource configuration.

        • disks: Parameters of the storage you will use to run jobs.

          • type: Disk type.
          • sizeGb: Disk size in GB.
        • scalePolicy.fixed.size: Number of exec nodes for the fixed scaling policy.

      • tablet: Configuration of tablet nodes:

        • preset: Computing resource configuration.
        • count: Number of tablet nodes.

        To use tablet nodes, make sure to specify the SSD storage parameters (spec.storage.ssd).

        Warning

        You cannot edit the number of tablet nodes after you create a cluster.

      • proxy: Proxy parameters:

        • http.count: Number of HTTP proxies.
        • rpc.count: Number of RPC proxies.
  3. Use the Cluster.Create method and send the following request, e.g., via cURL:

    curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --url 'https://ytsaurus.api.cloud.yandex.net/ytsaurus/v1/clusters'
        --data '@body.json'
    
  4. View the server response to make sure your request was successful.

  1. Get an IAM token for API authentication and save it as an environment variable:

    export IAM_TOKEN="<IAM_token>"
    
  2. Clone the cloudapi repository:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Below, we assume the repository contents are stored in the ~/cloudapi/ directory.

  3. Create a file named body.json and paste the following code into it:

    {
      "folder_id": "<folder_ID>",
      "name": "<cluster_name>",
      "description": "<cluster_description>",
      "zone_id": "<availability_zone>",
      "subnet_id": "<subnet_ID>",
      "security_group_ids": [ <list_of_security_group_IDs> ],
      "spec": {
        "storage": {
          "hdd": {
            "size_gb": "2048",
            "count": "3"
          },
          "ssd": {
            "size_gb": "465",
            "type": "network-ssd-nonreplicated",
            "count": "3"
          }
        },
        "compute": [
          {
            "preset": "c8-m32",
            "disks": [
              {
                "type": "network-ssd-nonreplicated",
                "size_gb": "93"
              }
            ],
            "scale_policy": {
              "fixed": {
                "size": "3"
              }
            }
          }
        ],
        "tablet": {
          "preset": "c8-m16",
          "count": "3"
        },
        "proxy": {
          "http": {
            "count": "2"
          },
          "rpc": {
            "count": "2"
          }
        }
      }
    }
    

    Where:

    • folder_id: Folder ID. You can get it with the list of folders in the cloud.

    • name: Cluster name.

    • description: Cluster description.

    • zone_id: Availability zone.

    • subnet_id: Subnet ID.

    • security_group_ids: List of security group IDs.

      Warning

      You cannot edit any network settings after you create a cluster.

    • spec: Configuration of YTsaurus cluster components:

      • storage: Storage parameters:

        • hdd: HDD parameters:

          • size_gb: Disk size in GB.
          • count: Number of disks.
        • ssd: SSD parameters:

          • size_gb: Disk size in GB.
          • type: Disk type.
          • count: Number of disks.

        Warning

        You cannot change the disk type or size for a YTsaurus cluster once you create it.

      • compute: Configuration of exec nodes:

        • preset: Computing resource configuration.

        • disks: Parameters of the storage you will use to run jobs.

          • type: Disk type.
          • size_gb: Disk size in GB.
        • scale_policy.fixed.size: Number of exec nodes for the fixed scaling policy.

      • tablet: Configuration of tablet nodes:

        • preset: Computing resource configuration.
        • count: Number of tablet nodes.

        To use tablet nodes, make sure to specify the SSD storage parameters (spec.storage.ssd).

        Warning

        You cannot edit the number of tablet nodes after you create a cluster.

      • proxy: Proxy parameters:

        • http.count: Number of HTTP proxies.
        • rpc.count: Number of RPC proxies.
  4. Use the ClusterService.Create call and send the following request, e.g., via gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/ytsaurus/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d @ \
        ytsaurus.api.cloud.yandex.net:443 \
        yandex.cloud.ytsaurus.v1.ClusterService.Create \
        < body.json
    
  5. Check the server response to make sure your request was successful.

Production clusterProduction cluster

Management console
Terraform
REST API
gRPC API
  1. In the management console, select the folder where you want to create a Managed Service for YTsaurus cluster.

  2. Select Managed Service for YTsaurus.

  3. Click Create cluster.

  4. Select Production cluster to create a cluster with manual setup.

  5. Under Basic parameters:

    1. Give the cluster a name. The name must be unique within the folder.
    2. Optionally, enter a description for the cluster.
    3. Optionally, create labels:
      1. Click Add label.
      2. Enter a label in key: value format.
      3. Press Enter.
  6. Under Network settings, select:

    • Availability zone for the cluster.
    • Subnet.
    • Security group for the cluster’s network traffic. This is an optional setting.

    Warning

    You cannot edit any network settings after you create a cluster.

  7. Under Storage, click Add and select the disk type, size, and number.

    The selected type determines the increments in which you can change your disk size:

    • Network HDD and SSD storage: In increments of 1 GB.
    • Non-replicated SSD storage: In increments of 93 GB.

    The HDD storage is required and added by default. Edit the disk number and size as appropriate.

    Warning

    You cannot change the disk type or size for a YTsaurus cluster once you create it.

  8. Under Exec node configuration, specify:

    • Number of nodes.
    • Computing resource configuration.
    • Type and size of the storage you will use to run jobs.
  9. Under Tablet node configuration, specify:

    • Number of nodes.
    • Computing resource configuration.

    To use tablet nodes, add an SSD or non-replicated SSD storage.

    Warning

    You cannot edit the number of tablet nodes after you create a cluster.

  10. Under HTTP configuration and RPC configuration, set the number of proxies.

    Warning

    You cannot edit the number of proxy nodes after you create a cluster.

  11. Click Create.

  12. Wait until the cluster is ready: its status on the Managed Service for YTsaurus dashboard will change to Running. This may take a while.

With Terraform, you can quickly create a cloud infrastructure in Yandex Cloud and manage it using configuration files. These files store the infrastructure description written in HashiCorp Configuration Language (HCL). If you change the configuration files, Terraform automatically detects which part of your configuration is already deployed, and what should be added or removed.

Terraform is distributed under the Business Source License. The Yandex Cloud provider for Terraform is distributed under the MPL-2.0 license.

For more information about the provider resources, see the relevant documentation on the Terraform website or its mirror.

If you do not have Terraform yet, install it and configure the Yandex Cloud provider.

To create a YTsaurus cluster:

  1. In the configuration file, describe the resources you are creating:

    • YTsaurus cluster: Cluster description.

    • Network: Description of the cloud network where a cluster will be located. If you already have a suitable network, you don't have to describe it again.

    • Subnets: Description of the subnets to connect the cluster hosts to. If you already have suitable subnets, you don't have to describe them again.

    Here is an example of the configuration file structure:

    resource "yandex_ytsaurus_cluster" "<cluster_name>" {
    
      description        = "<cluster_description>"
      name               = "<cluster_name>"
      zone_id            = yandex_vpc_subnet.<subnet_name>.zone
      subnet_id          = yandex_vpc_subnet.<subnet_name>.id
      security_group_ids = [<list_of_security_group_IDs>]
    
      labels = {
        <label_list>
      }
    
      spec = {
        storage = {
          hdd = {
            size_gb = <disk_size_in_GB>
            count   = <number_of_disks>
          }
          ssd = {
            size_gb = <disk_size_in_GB>
            type    = "<disk_type>"
            count   = <number_of_disks>
          }
        }
        compute = [
          {
            preset = "<computing_resource_configuration>"
            disks = [
              {
                size_gb   = <disk_size_in_GB>
                type      = "<disk_type>"
              }
            ]
            scale_policy = {
              fixed = {
                size = <number_of_exec_nodes>
              }
            }
            name = "default"
          }
        ]
        tablet = {
          preset = "<computing_resource_configuration>"
          count  = <number_of_tablet_nodes>
        }
        proxy = {
          http = {
            count = <number_of_HTTP_proxies>
          }
          rpc = {
            count = <number_of_RPC_proxies>
          }
        },
        odin = {
          checks_ttl = "<frequency_of_checks>"
        }
      }
    }
    
    resource "yandex_vpc_network" "<network_name>" { name = "<network_name>" }
    
    resource "yandex_vpc_subnet" "<subnet_name>" {
      name           = "<subnet_name>"
      zone           = "<availability_zone>"
      network_id     = yandex_vpc_network.<network_name>.id
      v4_cidr_blocks = ["<range>"]
    }
    

    Where:

    • description: Cluster description.

    • name: Cluster name.

    • zone_id: Availability zone.

    • subnet_id: Subnet ID.

    • security_group_ids: List of security group IDs.

      Warning

      You cannot edit any network settings after you create a cluster.

    • labels: List of labels Provide labels in <key> = "<value>" format.

    • spec: Configuration of YTsaurus cluster components:

      • storage: Storage parameters:

        • hdd: HDD parameters:

          • size_gb: Disk size in GB.
          • count: Number of disks.
        • ssd: SSD parameters:

          • size_gb: Disk size in GB.
          • type: Disk type, network-ssd or network-ssd-nonreplicated.
          • count: Number of disks.

        The selected type determines the increments in which you can set your disk size when creating a cluster:

        • Network HDD and SSD storage: In increments of 1 GB.
        • Non-replicated SSD storage: In increments of 93 GB.

        An HDD is required.

        Warning

        You cannot change the disk type or size for a YTsaurus cluster once you create it.

      • compute: Configuration of exec nodes:

        • preset: Computing resource configuration.

        • disks: Parameters of the storage you will use to run jobs.

          • size_gb: Disk size in GB.
          • type: Disk type, network-hdd, network-ssd, or network-ssd-nonreplicated.

          The selected type determines the increments in which you can set your disk size when creating a cluster:

          • Network HDD and SSD storage: In increments of 1 GB.
          • Non-replicated SSD storage: In increments of 93 GB.
        • scale_policy.fixed.size: Number of exec nodes for the fixed scaling policy.

        • name: Exec pool name.

      • tablet: Configuration of tablet nodes:

        • preset: Computing resource configuration.
        • count: Number of tablet nodes.

        To use tablet nodes, make sure to specify the SSD storage parameters (spec.storage.ssd).

        Warning

        You cannot edit the number of tablet nodes after you create a cluster.

      • proxy: Proxy parameters:

        • http.count: Number of HTTP proxies.
        • rpc.count: Number of RPC proxies.
      • odin.checks_ttl: Frequency of checks by Odin, an internal monitoring tool. Provide with units of measurement: h (hours), m (minutes), s (seconds). Here is an example: 336h0m0s (2 weeks).

    For more information about the resources you can create with Terraform, see this provider guide.

  2. Validate your configuration.

    1. In the command line, navigate to the directory that contains the current Terraform configuration files defining the infrastructure.

    2. Run this command:

      terraform validate
      

      Terraform will show any errors found in your configuration files.

  3. Create a Managed Service for YTsaurus cluster.

    1. Run this command to view the planned changes:

      terraform plan
      

      If you described the configuration correctly, the terminal will display a list of the resources to update and their parameters. This is a verification step that does not apply changes to your resources.

    2. If everything looks correct, apply the changes:

      1. Run this command:

        terraform apply
        
      2. Confirm updating the resources.

      3. Wait for the operation to complete.

    This will create all the resources you need in the specified folder. You can check the new resources and their configuration using the management console.

  1. Get an IAM token for API authentication and save it as an environment variable:

    export IAM_TOKEN="<IAM_token>"
    
  2. Create a file named body.json and paste the following code into it:

    {
      "folderId": "<folder_ID>",
      "name": "<cluster_name>",
      "description": "<cluster_description>",
      "labels": { <label_list> },
      "zoneId": "<availability_zone>",
      "subnetId": "<subnet_ID>",
      "securityGroupIds": [ <list_of_security_group_IDs> ],
      "spec": {
        "storage": {
          "hdd": {
            "sizeGb": "<disk_size_in_GB>",
            "count": "<number_of_disks>"
          },
          "ssd": {
            "sizeGb": "<disk_size_in_GB>",
            "type": "<disk_type>",
            "count": "<number_of_disks>"
          }
        },
        "compute": [
          {
            "preset": "<computing_resource_configuration>",
            "disks": [
              {
                "type": "<disk_type>",
                "sizeGb": "<disk_size_in_GB>"
              }
            ],
            "scalePolicy": {
              "fixed": {
                "size": "<number_of_exec_nodes>"
              }
            },
            "name": "default"
          }
        ],
        "tablet": {
          "preset": "<computing_resource_configuration>",
          "count": "<number_of_tablet_nodes>"
        },
        "proxy": {
          "http": {
            "count": "<number_of_HTTP_proxies>"
          },
          "rpc": {
            "count": "<number_of_RPC_proxies>"
          }
        },
        "odin": {
          "checksTtl": "<frequency_of_checks_in_seconds>"
        }
      }
    }
    

    Where:

    • folderId: Folder ID. You can get it with the list of folders in the cloud.

    • name: Cluster name.

    • description: Cluster description.

    • labels: List of labels provided in "<key>": "<value>" format.

    • zoneId: Availability zone.

    • subnetId: Subnet ID.

    • securityGroupIds: List of security group IDs.

      Warning

      You cannot edit any network settings after you create a cluster.

    • spec: Configuration of YTsaurus cluster components:

      • storage: Storage parameters:

        • hdd: HDD parameters:

          • sizeGb: Disk size in GB.
          • count: Number of disks.
        • ssd: SSD parameters:

          • sizeGb: Disk size in GB.
          • type: Disk type, network-ssd or network-ssd-nonreplicated.
          • count: Number of disks.

        The selected type determines the increments in which you can set your disk size when creating a cluster:

        • Network HDD and SSD storage: In increments of 1 GB.
        • Non-replicated SSD storage: In increments of 93 GB.

        An HDD is required.

        Warning

        You cannot change the disk type or size for a YTsaurus cluster once you create it.

      • compute: Configuration of exec nodes:

        • preset: Computing resource configuration.

        • disks: Parameters of the storage you will use to run jobs.

          • type: Disk type, network-hdd, network-ssd, or network-ssd-nonreplicated.
          • sizeGb: Disk size in GB.

          The selected type determines the increments in which you can set your disk size when creating a cluster:

          • Network HDD and SSD storage: In increments of 1 GB.
          • Non-replicated SSD storage: In increments of 93 GB.
        • scalePolicy.fixed.size: Number of exec nodes for the fixed scaling policy.

        • name: Exec pool name.

      • tablet: Configuration of tablet nodes:

        • preset: Computing resource configuration.
        • count: Number of tablet nodes.

        To use tablet nodes, make sure to specify the SSD storage parameters (spec.storage.ssd).

        Warning

        You cannot edit the number of tablet nodes after you create a cluster.

      • proxy: Proxy parameters:

        • http.count: Number of HTTP proxies.
        • rpc.count: Number of RPC proxies.
      • odin.checksTtl: Frequency of checks by Odin, an internal monitoring tool. Specify it in seconds (s), e.g., 1209600s (2 weeks).

  3. Use the Cluster.Create method and send the following request, e.g., via cURL:

    curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --url 'https://ytsaurus.api.cloud.yandex.net/ytsaurus/v1/clusters' \
        --data '@body.json'
    
  4. View the server response to make sure your request was successful.

  1. Get an IAM token for API authentication and save it as an environment variable:

    export IAM_TOKEN="<IAM_token>"
    
  2. Clone the cloudapi repository:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Below, we assume the repository contents are stored in the ~/cloudapi/ directory.

  3. Create a file named body.json and paste the following code into it:

    {
      "folder_id": "<folder_ID>",
      "name": "<cluster_name>",
      "description": "<cluster_description>",
      "labels": { <label_list> },
      "zone_id": "<availability_zone>",
      "subnet_id": "<subnet_ID>",
      "security_group_ids": [ <list_of_security_group_IDs> ],
      "spec": {
        "storage": {
          "hdd": {
            "size_gb": "<disk_size_in_GB>",
            "count": "<number_of_disks>"
          },
          "ssd": {
            "size_gb": "<disk_size_in_GB>",
            "type": "<disk_type>",
            "count": "<number_of_disks>"
          }
        },
        "compute": [
          {
            "preset": "<computing_resource_configuration>",
            "disks": [
              {
                "type": "<disk_type>",
                "size_gb": "<disk_size_in_GB>"
              }
            ],
            "scale_policy": {
              "fixed": {
                "size": "<number_of_exec_nodes>"
              }
            },
            "name": "default"
          }
        ],
        "tablet": {
          "preset": "<computing_resource_configuration>",
          "count": "<number_of_tablet_nodes>"
        },
        "proxy": {
          "http": {
            "count": "<number_of_HTTP_proxies>"
          },
          "rpc": {
            "count": "<number_of_RPC_proxies>"
          }
        },
        "odin": {
          "checks_ttl": "<frequency_of_checks_in_seconds>"
        }
      }
    }
    

    Where:

    • folderId: Folder ID. You can get it with the list of folders in the cloud.

    • name: Cluster name.

    • description: Cluster description.

    • labels: List of labels provided in "<key>": "<value>" format.

    • zone_id: Availability zone.

    • subnet_id: Subnet ID.

    • security_group_ids: List of security group IDs.

      Warning

      You cannot edit any network settings after you create a cluster.

    • spec: Configuration of YTsaurus cluster components:

      • storage: Storage parameters:

        • hdd: HDD parameters:

          • size_gb: Disk size in GB.
          • count: Number of disks.
        • ssd: SSD parameters:

          • size_gb: Disk size in GB.
          • type: Disk type, network-ssd or network-ssd-nonreplicated.
          • count: Number of disks.

        The selected type determines the increments in which you can set your disk size when creating a cluster:

        • Network HDD and SSD storage: In increments of 1 GB.
        • Non-replicated SSD storage: In increments of 93 GB.

        An HDD is required.

        Warning

        You cannot change the disk type or size for a YTsaurus cluster once you create it.

      • compute: Configuration of exec nodes:

        • preset: Computing resource configuration.

        • disks: Parameters of the storage you will use to run jobs.

          • type: Disk type, network-hdd, network-ssd, or network-ssd-nonreplicated.
          • size_gb: Disk size in GB.

          The selected type determines the increments in which you can set your disk size when creating a cluster:

          • Network HDD and SSD storage: In increments of 1 GB.
          • Non-replicated SSD storage: In increments of 93 GB.
        • scale_policy.fixed.size: Number of exec nodes for the fixed scaling policy.

        • name: Exec pool name.

      • tablet: Configuration of tablet nodes:

        • preset: Computing resource configuration.
        • count: Number of tablet nodes.

        To use tablet nodes, make sure to specify the SSD storage parameters (spec.storage.ssd).

        Warning

        You cannot edit the number of tablet nodes after you create a cluster.

      • proxy: Proxy parameters:

        • http.count: Number of HTTP proxies.
        • rpc.count: Number of RPC proxies.
      • odin.checks_ttl: Frequency of checks by Odin, an internal monitoring tool. Specify it in seconds (s), e.g., 1209600s (2 weeks).

  4. Use the ClusterService.Create call and send the following request, e.g., via gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/ytsaurus/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d @ \
        ytsaurus.api.cloud.yandex.net:443 \
        yandex.cloud.ytsaurus.v1.ClusterService.Create \
        < body.json
    
  5. Check the server response to make sure your request was successful.

ExamplesExamples

Terraform

Create a Managed Service for YTsaurus cluster and its network with the following test specifications:

  • Name: my-ytsaurus-cluster.

  • Network: my-network.

  • Subnet: my-subnet. The subnet availability zone is ru-central1-a; the range is 10.1.0.0/16.

  • Storage:

    • 4 HDDs, size: 4096 GB.
    • 3 network-ssd SSDs, size: 512 GB.
  • Exec nodes:

    • Number of nodes: 5.
    • Computing resource configuration: c8-m32.
    • Disk type: network-ssd, size: 512 GB.
  • Tablet nodes:

    • Number of nodes: 3.
    • Computing resource configuration: c8-m16.
  • HTTP and RPC proxies: 5 of each type.

The configuration file for this cluster looks like this:

resource "yandex_ytsaurus_cluster" "my-ytsaurus-cluster" {

  name               = "my-ytsaurus-cluster"
  zone_id            = yandex_vpc_subnet.my-subnet.zone
  subnet_id          = yandex_vpc_subnet.my-subnet.id

  spec = {
    storage = {
      hdd = {
        size_gb = 4096
        count   = 4
      }
      ssd = {
        size_gb = 512
        type    = "network-ssd"
        count   = 3
      }
    }
    compute = [
      {
        preset = "c8-m32"
        disks = [
          {
            size_gb   = 512
            type      = "network-ssd"
          }
        ]
        scale_policy = {
          fixed = {
            size = 5
          }
        }
      }
    ]
    tablet = {
      preset = "c8-m16"
      count  = 3
    }
    proxy = {
      http = {
        count = 5
      }
      rpc = {
        count = 5
      }
    }
  }
}

resource "yandex_vpc_network" "my-network" { name = "my-network" }

resource "yandex_vpc_subnet" "my-subnet" {
  name           = "my-subnet"
  zone           = "ru-central1-a"
  network_id     = yandex_vpc_network.my-network.id
  v4_cidr_blocks = ["10.1.0.0/16"]
}

Was the article helpful?

Previous
Information about existing clusters
Next
Connecting to a cluster
© 2025 Direct Cursus Technology L.L.C.