Deploying YDB in Kubernetes is a simple and easy way to install YDB. With Kubernetes, you can use a universal approach to managing your application in any cloud provider. This guide provides instructions on how to deploy YDB in Yandex Managed Service for Kubernetes and AWS EKS.

YDB is delivered as a Helm chart that is a package with templates of Kubernetes structures. You can deploy charts in the following environment:

  1. The Helm package manager of version higher than 3.1.0 is installed.
  2. Kubernetes version 1.20 or higher is used.
  3. The kubectl command line tool is installed and cluster access is configured.
  4. Dynamic Volume Provisioning is supported in clusters.

For more information about Helm, see the documentation.

A Helm chart installs a controller in the Kubernetes cluster. It implements the logic required for deploying YDB components. The controller is based on the Operator pattern.

YDB consists of two components:

  • Storage nodes: Provide the data storage layer.
  • Dynamic nodes: Implement data access and processing.

To deploy each of the components, just create an appropriate resource: Storage or Database with the desired parameters. To learn more about the resource schema, follow this link.

After the chart data is processed by the controller, the following resources are created:

  • StatefulSet: A workload controller that assigns stable network IDs and disk resources to each container.
  • Service: An object that is used to access the created databases from applications.
  • ConfigMap: An object that is used to store the cluster configuration.

See the controller's source code here. The Helm chart is in the deploy directory.
YDB containers are deployed using cr.yandex/yc/ydb images. Currently, they are only available as prebuilt artifacts.