Telepresence With Go Micro и Consul вызывают ошибку из-за сбоя при обнаружении службы - PullRequest
0 голосов
/ 31 января 2019

Я использую go-micro для своих приложений, в настоящее время я использую консул для локальной разработки, однако я использую Kubernetes, когда развернул свой сервис в промежуточной и производственной среде.Я читал о Telepresence [1], который представляет собой двойной прокси-сервер, позволяющий вам получить доступ к вашей зависимости от услуг Kubernetes.Поэтому я попытался использовать Telepresence.Этот локальный код был развернут с использованием Telepresence, создайте новое развертывание с тестовыми пространствами имен и разрешите ему доступ к другой службе в другом пространстве имен в том же кластере.Однако в моем сервисе есть такая ошибка:

2019/01/29 13:11:18 stat
/var/run/secrets/kubernetes.io/serviceaccount: no such file or direct

Что странно, потому что я могу использовать тот же подход, когда мой сервис не нуждается в какой-либо зависимости в кластере Kubernetes.В качестве другого примечания я использую GKE в Google Cloud с RBAC для каждого пространства имен.

[1] https://www.telepresence.io/

1 Ответ

0 голосов
/ 08 февраля 2019

Это связано с тем, что по умолчанию go micro с kubernetes будет пытаться найти учетную запись службы по умолчанию, необходимую для развертывания приложения в кластере.Это применимо, только если мы используем Telepresence в новом режиме развертывания.Поскольку Telepresence создаст новое развертывание, чтобы открыть прокси-соединение, чтобы мы могли получить доступ ко всем ресурсам кластера.

Мне удалось запустить мой код с помощью дистанционного присутствия с go-micro, все, что мне нужно сделать, этосоздать:

sudo mkdir -p /var/run/secrets/kubernetes.io/

, а затем использовать символическую ссылку:

sudo ln -s $TELEPRESENCE_ROOT/var/run/secrets/kubernetes.io/serviceaccount/ /var/run/secrets/kubernetes.io

и затем запустить:

go main.go --selector=static --server_address=0.0.0.0:<port>

Статический флаг здесь важен [1]

Ссылки: 1. https://github.com/micro/go-plugins/tree/master/selector/static

...