Helm chart для запуска tuna в Kubernetes
Мы подготовили Helm chart для запуска tuna в Kubernetes.
В этой статье мы опишем случаи применения когда tuna может помочь вам в работе с приложениями в Kubernetes.
Обзор
В большинстве случаев вы можете обойтись штатными инструментами kubectl, опубликовать сервис просто создав Ingress, создать Service LoadBalancer у облачного провайдера для публикации доступа к базе данных, ну или просто запустить port-forward. Но не всегда штатные инструменты позволяют решать наши запросы достаточно быстро, удобно или дёшево.
Подключение репозитория
Прежде чем начать, установите Helm.
Подключите репозиторий и обновите манифесты:
helm repo add tuna https://releases.tuna.am/charts/
helm repo update tuna
Основные значения (values)
type
- тип туннеля, передаётся как 1й аргумент к команде, доступные значения -http, tcp, ssh
.to
- адрес назначения, это обязательный аргумент для типовhttp, tcp
. Значениеto
передаётся в переменнуюTUNA_PORT
Вы можете указать адрес сервиса в вашем кластере, например -my-service:80
илиpostgres-postgresql.postgres.svc:5432
.token
- ваш токен для создания туннелей, если передать его в это поле, то он будет сохранён в секрет и передан в tuna как переменная окруженияTUNA_TOKEN
. Но это не обязательно, вы можете и просто передать его вenv.TUNA_TOKEN=<your_token>
или вargs[0]='--token=<your_token>'
.
Также скорее всего вы захотите задать дополнительные конфигурации:
env: {}
- Конфигурация через переменные окружения.args: []
- Конфигурация через аргументы командной строки.
Более подробно читайте в отдельном разделе.
Публикация сервиса
Базовый пример это просто публикация сервиса. Например вы хотите получить доступ какой то админке или метрикам. Tuna также поможет открыть доступ к сервису в minikube в серой сети.
helm install tuna --set to=my-service:80 --set token=<your_token> tuna/tuna
Доступ к базе данных и другим TCP ресурсам
Допустим у нас есть Redis или MongoDB или Postgres, и нужно открыть доступ к нему всем на какой то промежуток времени. Создать Service LoadBalancer можно, но это дороже. Создать роль и раздать всем разработчикам доступ в Kubernetes, чтобы каждый сам запуска у себя kubectl port-forward тоже можно, но это значительно дольше и ещё всех надо научить. C Tuna же организовать это можно самостоятельно буквально за 5 минут, раздать всем адрес подключения и вот уже все могут подключаться к вашим TCP приложениям.
Создайте values.yml
файл:
type: tcp
to: postgres-postgresql.postgres.svc:5432
token: <your_token>
Запустите приложение:
helm install tuna -f values.yml tuna/tuna
SSH доступ
Вы можете запустить Tuna с встроенным SSHd сервером и подключиться в контейнер, напрямую через ssh.
Добавьте привилегии securityContext
если нужно установить дополнительное ПО в контейнере, или используйте свой образ.
Создайте values.yml
файл:
type: ssh
token: <your_token>
securityContext:
capabilities: {}
readOnlyRootFilesystem: false
runAsNonRoot: false
runAsUser: 0
Запустите приложение:
helm install tuna -f values.yml tuna/tuna
Оставьте отзыв
Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста оставьте отзыв.

Помощь
Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов: