Yandex Cloud
Search
Contact UsGet started
  • Blog
  • Pricing
  • Documentation
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • ML & AI
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Customer Stories
    • Gateway to Russia
    • Cloud for Startups
    • Education and Science
  • Blog
  • Pricing
  • Documentation
Yandex project
© 2025 Yandex.Cloud LLC
Yandex Managed Service for Kubernetes
  • Comparison with other Yandex Cloud services
  • Getting started
    • All guides
    • Connecting to a node over SSH
    • Connecting to a node via OS Login
    • Updating Kubernetes
    • Configuring autoscaling
      • Getting started with Cloud Marketplace
      • Installing Argo CD
      • Installing Chaos Mesh
      • Installing cert-manager with the Cloud DNS ACME webhook plugin
      • Installing Container Storage Interface for S3
      • Installing Crossplane
      • Installing External Secrets Operator
      • Installing ExternalDNS with a plugin for Cloud DNS
      • Installing Falco
      • Installing Filebeat OSS
      • Installing Fluent Bit
      • Installing Gatekeeper
      • Installing Gateway API
      • Installing the GitLab Agent
      • Installing GitLab Runner
      • Installing HashiCorp Vault
      • Installing Ingress NGINX
      • Installing the Application Load Balancer Ingress controller
      • Upgrading the Application Load Balancer Ingress controller
      • Installing Istio
      • Installing Jaeger
      • Installing Kruise
      • Installing Kyverno & Kyverno Policies
      • Installing Loki
      • Installing Metrics Provider
      • Installing NodeLocal DNS
      • Installing Policy Reporter
      • Installing Prometheus Operator
      • Installing Thumbor
      • Installing Velero
    • Connecting external nodes to the cluster
  • Access management
  • Pricing policy
  • Terraform reference
  • Monitoring metrics
  • Audit Trails events
  • Release notes

In this article:

  • Getting started
  • Installation using Yandex Cloud Marketplace
  • Installation using a Helm chart
  • Accessing the application
  • What's next
  • See also
  1. Step-by-step guides
  2. Installing apps from Cloud Marketplace
  3. Installing Thumbor

Installing Thumbor

Written by
Yandex Cloud
Improved by
Dmitry A.
Updated at May 5, 2025
  • Getting started
  • Installation using Yandex Cloud Marketplace
  • Installation using a Helm chart
  • Accessing the application
  • What's next
  • See also

Thumbor is an open-source project for on-demand image processing. Thumbor runs as an HTTP service and performs transformations, such as image cropping and resizing, applying filters and many others.

Thumbor features:

  • Support for all popular image formats.
  • Smart cropping and resizing.
  • Speeding up image processing by caching.
  • Supporting various storage types (local disk, Yandex Object Storage, and others).
  • Face and object recognition (glasses, facial features) based on computer vision technology.
  • Integration with various programming languages.

Getting startedGetting started

  1. Create a bucket with restricted access in Object Storage.

  2. Upload images to the bucket.

  3. Create a service account for Thumbor to run.

  4. Create a static key and save it to a file named sa-key.json:

    yc iam access-key create \
      --service-account-name <service_account_name_for_Thumbor> \
      --format json > sa-key.json
    
  5. Set the bucket object read access rights for the service account.

  6. Make sure that the security groups for the Managed Service for Kubernetes cluster and its node groups are configured correctly. If any rule is missing, add it.

    Warning

    The configuration of security groups determines the performance and availability of the cluster and the services and applications running in it.

Installation using Yandex Cloud MarketplaceInstallation using Yandex Cloud Marketplace

  1. Navigate to the folder dashboard and select Managed Service for Kubernetes.

  2. Click the name of the Kubernetes cluster you need and select the  Marketplace tab.

  3. Under Application available for installation, select Thumbor and click Go to install.

  4. Configure the application:

    • Namespace: Create a new namespace, e.g., thumbor-space. If you leave the default namespace, Thumbor may work incorrectly.
    • Application name: Specify the application name.
    • Bucket name: Specify the name of the bucket you created previously.
    • Object Storage static access key: Paste the contents of the sa-key.json file.
    • (Optional) Security key: Specify the security key for URL signing.
    • Allow unsigned URLs (unsafe): Select this option if you did not specify a security key at the previous step.
    • Subfolder in the bucket: Specify the name of the bucket folder (without the ending / symbol) where images are located.
  5. Click Install.

    For Thumbor to operate, a Kubernetes service of the LoadBalancer type and the appropriate Yandex Network Load Balancer load balancer will be created automatically.

  6. Wait for the application to change its status to Deployed.

Installation using a Helm chartInstallation using a Helm chart

  1. Install Helm v3.8.0 or higher.

  2. Install kubect and configure it to work with the new cluster.

  3. To install a Helm chart with Thumbor, run the following command, specifying the parameters of the resources you created earlier:

    Unsigned URLs are allowed
    Unsigned URLs are not allowed
    helm pull oci://cr.yandex/yc-marketplace/yandex-cloud/thumbor/thumbor/chart/thumbor \
      --version 0.1.1-4 \
      --untar && \
    helm install \
      --namespace <namespace_for_Thumbor> \
      --create-namespace \
      --set bucket_name='<bucket_name>' \
      --set allow_unsafe_url='true' \
      --set root_path='<bucket_subfolder_name>' \
      --set-file saAccessKeyFile='sa-key.json' \
     thumbor ./thumbor
    

    If you set namespace to the default namespace, Thumbor may work incorrectly. We recommend you to specify a value different from all existing namespaces (e.g., thumbor-space).

    Note

    If you are using a Helm version below 3.8.0, append the export HELM_EXPERIMENTAL_OCI=1 && \ string to the command to enable Open Container Initiative (OCI) support in the Helm client.

    helm pull oci://cr.yandex/yc-marketplace/yandex-cloud/thumbor/thumbor/chart/thumbor \
      --version 0.1.1-4 \
      --untar && \
    helm install \
      --namespace <namespace_for_Thumbor> \
      --create-namespace \
      --set bucket_name='<bucket_name>' \
      --set allow_unsafe_url='false' \
      --set security_key='<security_key_for_signing_URL>' \
      --set root_path='<bucket_subfolder_name>' \
      --set-file saAccessKeyFile='sa-key.json' \
     thumbor ./thumbor/
    

    If you set namespace to the default namespace, Thumbor may work incorrectly. We recommend you to specify a value different from all existing namespaces (e.g., thumbor-space).

    Note

    If you are using a Helm version below 3.8.0, append the export HELM_EXPERIMENTAL_OCI=1 && \ string to the command to enable Open Container Initiative (OCI) support in the Helm client.

    For Thumbor to operate, a Kubernetes service of the LoadBalancer type and the appropriate Yandex Network Load Balancer load balancer will be created automatically.

Accessing the applicationAccessing the application

Management console
CLI
  1. Navigate to the folder dashboard and select Network Load Balancer.
  2. Get the IP address of the load balancer with the following description: cluster <your_cluster_name>, service <namespace>/thumbor.
  3. In the browser address bar, open this link: http://<load_balancer_IP_address>/unsafe/<image_name_in_bucket>.
  1. Run the command below to get the load balancer's IP address:

    kubectl get svc \
      --namespace <namespace> \
      --output jsonpath='{.status.loadBalancer.ingress[0].ip}' thumbor
    
  2. In the browser address bar, open this link: http://<load_balancer_IP_address>/unsafe/<image_name_in_bucket>.

Note

If the resource is unavailable at the specified URL, make sure that the security groups for the Managed Service for Kubernetes cluster and its node groups are configured correctly. If any rule is missing, add it.

Learn more about working with images, in the Thumbor documentation.

What's nextWhat's next

Learn how to use Thumbor for editing images on your website. The Thumbor use case described in the documentation involves configuring Yandex Cloud CDN. The service allows to achieve faster loading of website images.

See alsoSee also

  • Thumbor documentation
  • Object Storage documentation
  • Network Load Balancer documentation

Was the article helpful?

Previous
Installing Prometheus Operator
Next
Installing Velero
Yandex project
© 2025 Yandex.Cloud LLC