Thank you for reading this post, don't forget to subscribe!
возникла задача стучаться до RDS(aws) или сервисов внутри кластера k8s с локального компа а не из вне.
чтобы это реализовать будет настроено ssh тунелирование:
1. Запускаем openssh-server внутри нашего кластера порт 2222 пароль test пользователь test:
kubectl run test-ssh --image=linuxserver/openssh-server --restart=Never -n dev --port=2222 --env="PASSWORD_ACCESS=true" --env="USER_PASSWORD=test" --env="USER_NAME=test" --env="SUDO_ACCESS=true"
2. Доустанавливаем необходимые пакеты внутрь нашего контейнера:
kubectl exec -ti -n dev test-ssh -- bash -c "apk add python3"
3. Настраиваем port-forward:
kubectl port-forward pods/test-ssh 2222:2222 -n dev
4. Прокидываем весь наш трафик через этот контейнер:
sshuttle -r test@localhost:2222 0.0.0.0/0 -vv
5. Переключаемся на другое окно консоли или открываем новую и продолжаем работать в нём.
Sshuttle - дает возможность создать VPN соединение от вашей локальной машины до удаленной машины с использованием подключения по ssh. Для работы необходим пакет python версии не ниже 2.3
Для работы вы должны иметь права root пользователя на локальной машине, но при этом подключение к удаленному сервере может быть организованно с правами обычных непривилегированных пользователей.
Возможно одновременное подключение сразу к нескольким удаленным серверам
Установка
sudo yum install sshuttle