Установка Thumbor
Thumbor
Возможности Thumbor:
- Поддержка всех популярных форматов изображений.
- Умная обрезка и масштабирование.
- Ускорение обработки изображений за счет кэширования.
- Поддержка различных типов хранилищ (локальный диск, Yandex Object Storage и другие).
- Распознавание лиц и предметов (очки, особенности внешности) на базе технологии компьютерного зрения
. - Интеграция с различными языками программирования.
Перед началом работы
-
Создайте бакет с ограниченным доступом в Object Storage.
-
Создайте сервисный аккаунт, необходимый для работы Thumbor.
-
Создайте для него статический ключ и сохраните в файл
sa-key.json
:yc iam access-key create \ --service-account-name <имя_сервисного_аккаунта_для_Thumbor> \ --format json > sa-key.json
-
Задайте права доступа на чтение объектов бакета для сервисного аккаунта.
-
Убедитесь, что группы безопасности для кластера Managed Service for Kubernetes и его групп узлов настроены корректно. Если отсутствует какое-либо из правил — добавьте его.
Важно
От настройки групп безопасности зависит работоспособность и доступность кластера, а также запущенных в нем сервисов и приложений.
Установка с помощью Yandex Cloud Marketplace
-
Перейдите на страницу каталога
и выберите сервис Managed Service for Kubernetes. -
Нажмите на имя нужного кластера Kubernetes и выберите вкладку
Marketplace. -
В разделе Доступные для установки приложения выберите Thumbor и нажмите кнопку Перейти к установке.
-
Задайте настройки приложения:
- Пространство имен — выберите пространство имен для Thumbor или создайте новое.
- Название приложения — укажите название приложения.
- Имя бакета — укажите имя бакета, созданного ранее.
- Статический ключ для доступа к Object Storage — вставьте содержимое файла
sa-key.json
. - (Опционально) Ключ безопасности — укажите ключ безопасности для подписывания URL.
- Разрешить URL без подписи (unsafe) — выберите эту опцию, если вы не указывали ключ безопасности на предыдущем шаге.
- Подкаталог в бакете — укажите имя каталога в бакете (без завершающего символа
/
), в котором находятся изображения.
-
Нажмите кнопку Установить.
Для обеспечения работы Thumbor будет автоматически создан сервис Kubernetes типа
LoadBalancer
и соответствующий ему балансировщик Yandex Network Load Balancer. -
Дождитесь перехода приложения в статус
Deployed
.
Установка с помощью Helm-чарта
-
Установите менеджер пакетов Helm
версии не ниже 3.8.0. -
Установите kubectl
и настройте его на работу с созданным кластером. -
Для установки Helm-чарта
с Thumbor выполните команду:URL без подписи разрешеныURL без подписи запрещеныhelm pull oci://cr.yandex/yc-marketplace/yandex-cloud/thumbor/thumbor/chart/thumbor \ --version 0.1.1-4 \ --untar && \ helm install \ --namespace <пространство_имен_для_Thumbor> \ --create-namespace \ --set bucket_name='<имя_бакета>' \ --set allow_unsafe_url='true' \ --set root_path='<имя_подкаталога_в_бакете>' \ --set-file saAccessKeyFile='sa-key.json' \ thumbor ./thumbor
Примечание
Если вы используете версию Helm ниже 3.8.0, добавьте в начало команды строку
export HELM_EXPERIMENTAL_OCI=1 && \
, чтобы включить поддержку Open Container Initiative (OCI) в клиенте Helm.helm pull oci://cr.yandex/yc-marketplace/yandex-cloud/thumbor/thumbor/chart/thumbor \ --version 0.1.1-4 \ --untar && \ helm install \ --namespace <пространство_имен_для_Thumbor> \ --create-namespace \ --set bucket_name='<имя_бакета>' \ --set allow_unsafe_url='false' \ --set security_key='<ключ_безопасности_для_подписывания_URL>' \ --set root_path='<имя_подкаталога_в_бакете>' \ --set-file saAccessKeyFile='sa-key.json' \ thumbor ./thumbor/
Примечание
Если вы используете версию Helm ниже 3.8.0, добавьте в начало команды строку
export HELM_EXPERIMENTAL_OCI=1 && \
, чтобы включить поддержку Open Container Initiative (OCI) в клиенте Helm.Для обеспечения работы Thumbor будет автоматически создан сервис Kubernetes типа
LoadBalancer
и соответствующий ему балансировщик Yandex Network Load Balancer.
Получение доступа к приложению
- Перейдите на страницу каталога
и выберите сервис Network Load Balancer. - Узнайте IP-адрес для балансировщика с описанием
cluster <имя_вашего_кластера>, service <пространство_имен>/thumbor
. - В адресной строке браузера откройте ссылку
http://<IP-адрес_балансировщика>/unsafe/<имя_изображения_в_бакете>
.
-
Узнайте IP-адрес балансировщика с помощью команды:
kubectl get svc \ --namespace <пространство_имен> \ --output jsonpath='{.status.loadBalancer.ingress[0].ip}' thumbor
-
В адресной строке браузера откройте ссылку
http://<IP-адрес_балансировщика>/unsafe/<имя_изображения_в_бакете>
.
Примечание
Если ресурс недоступен по указанному URL, то убедитесь, что группы безопасности для кластера Managed Service for Kubernetes и его групп узлов настроены корректно. Если отсутствует какое-либо из правил — добавьте его.
Подробнее о работе с изображениями см. в документации Thumbor
Что дальше
Узнайте, как использовать приложение Thumbor для редактирования изображений на вашем сайте. Пример работы с Thumbor, рассмотренный в документации, включает в себя настройку сервиса Yandex Cloud CDN. Он позволяет снизить скорость загрузки изображений на сайте.