Перейти к основному содержимому

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

· 3 мин. чтения

Мы подготовили 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>'.

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

Более подробно читайте в отдельном разделе.

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

Базовый пример это просто публикация сервиса. Например вы хотите получить доступ какой то админке или метрикам. 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 – обязательно свяжитесь с нами одним из способов: