# Helm chart для запуска tuna в Kubernetes

5 февраля 2025 г. ·

<!-- -->

3 мин. чтения

Мы подготовили Helm chart для запуска tuna в Kubernetes.<br /><!-- -->В этой статье мы опишем случаи применения когда tuna может помочь вам в работе с приложениями в Kubernetes.

## Обзор

В большинстве случаев вы можете обойтись штатными инструментами **kubectl**, опубликовать сервис просто создав Ingress, создать Service LoadBalancer у облачного провайдера для публикации доступа к базе данных, ну или просто запустить port-forward. Но не всегда штатные инструменты позволяют решать наши запросы достаточно быстро, удобно или дёшево.

### Подключение репозитория

Прежде чем начать, [установите Helm](https://helm.sh/docs/intro/install/).<br /><!-- -->Подключите репозиторий и обновите манифесты:

```shell
helm repo add tuna https://releases.tuna.am/charts/
helm repo update tuna

```

### Основные значения (values)

* `type` - [тип туннеля](https://tuna.am/docs/tunnels.md), передаётся как 1й аргумент к команде, доступные значения - `http, tcp, ssh`.
* `to` - адрес назначения, это обязательный аргумент для типов `http, tcp`. Значение `to` передаётся в [переменную](https://tuna.am/docs/guides/environment-variables.md) `TUNA_PORT` Вы можете указать адрес сервиса в вашем кластере, например - `my-service:80` или `postgres-postgresql.postgres.svc:5432`.
* `token` - ваш [токен](https://my.tuna.am/token) для создания туннелей, если передать его в это поле, то он будет сохранён в секрет и передан в tuna как переменная окружения `TUNA_TOKEN`. Но это не обязательно, вы можете и просто передать его в `env.TUNA_TOKEN=<your_token>` или в `args[0]='--token=<your_token>'`.

Также скорее всего вы захотите задать дополнительные конфигурации:

* `env: {}` - Конфигурация через [переменные окружения](https://tuna.am/docs/guides/environment-variables.md).
* `args: []` - Конфигурация через [аргументы командной строки](https://tuna.am/docs/tunnels.md).

Более подробно читайте в [отдельном разделе](https://tuna.am/docs/tunnels/examples/kubernetes.md).

### Публикация сервиса

Базовый пример это просто публикация сервиса. Например вы хотите получить доступ какой то админке или метрикам. Tuna также поможет открыть доступ к сервису в minikube в серой сети.

```shell
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` файл:

```yaml
type: tcp
to: postgres-postgresql.postgres.svc:5432
token: <your_token> 

```

Запустите приложение:

```shell
helm install tuna -f values.yml tuna/tuna

```

### SSH доступ

Вы можете запустить Tuna с встроенным SSHd сервером и подключиться в контейнер, напрямую через ssh. Добавьте привилегии `securityContext` если нужно установить дополнительное ПО в контейнере, или используйте свой образ.

Создайте `values.yml` файл:

```yaml
type: ssh
token: <your_token>
securityContext:
  capabilities: {}
  readOnlyRootFilesystem: false
  runAsNonRoot: false
  runAsUser: 0

```

Запустите приложение:

```shell
helm install tuna -f values.yml tuna/tuna

```

## Оставьте отзыв

Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста [оставьте отзыв](https://my.tuna.am/?show_feedback=1).

![](/blog/img/2024-08-22/feedback.gif)

## Помощь

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

* [Электронная почта](mailto:info@tuna.am)
* [Telegram сообщество](https://telegram.me/+Kgbtt0_gJwI5ZmEy)

**Теги:**

* [customer-stories](https://tuna.am/blog/tags/customer-stories)
