Установленный на Gitlab шлем: ошибка: превышен крайний срок контекста - PullRequest
1 голос
/ 09 апреля 2019

У меня в AWS установлен кластер Kubernetes с Kops.Я установил Helm Tiller с пользовательским интерфейсом Gitlab.Служба Tiller, похоже, работает через Gitlab, например, я установил Ingress из пользовательского интерфейса Gitlab.

Но при попытке использовать тот же Tiller из моего CLI, мне не удается заставить его работать.Когда я helm init говорит, что он уже установлен (что вполне логично):

helm init --tiller-namespace gitlab-managed-apps --service-account tiller
$HELM_HOME has been configured at C:\Users\danie\.helm.
Warning: Tiller is already installed in the cluster.
(Use --client-only to suppress this message, or --upgrade to upgrade Tiller to the current version.)
Happy Helming!

Но при попытке, например, составить список графиков, требуется 5 минут, а затем тайм-ауты:

$ helm list --tiller-namespace gitlab-managed-apps --debug
[debug] Created tunnel using local port: '60471'

[debug] SERVER: "127.0.0.1:60471"

Error: context deadline exceeded

Чего мне не хватает, чтобы я мог использовать установленный Gitlab Tiller из моего CLI?

1 Ответ

1 голос
/ 09 апреля 2019

Вы уверены, что ваш сервер Tiller установлен в пространстве имен "gitlab-managed-apps"? По умолчанию он устанавливается в систему 'kube-system' согласно официальной инструкции установка на веб-сайте GitLab, что может означать, что именно это приводит к сбою вашей команды helm ls (просто пропустите ее)

Лучший способ проверить это:

kubectl get deploy/tiller-deploy -n gitlab-managed-apps

Видите ли вы какой-либо связанный объект развертывания в этом пространстве имен?

Предполагая, что вы можете управлять кластером KOPS с текущим контекстом kube, у вас не должно возникнуть проблем с локальным запуском helm-клиента. Вы всегда можете явно использовать аргумент --kube-context с командой helm.

Обновление:

Мне кажется, я знаю, в чем причина вашей проблемы. Helm при установке через интерфейс GitLab использует защищенное соединение (SSL) между рулем и румпелем (подтверждение здесь ).

Знание этого означает, что вы должны получить набор сертификатов из объекта Secret, смонтированного на Tiller Pod:

#The CA
ca.cert.pem
ca.key.pem
#The Helm client files
helm.cert.pem
helm.key.pem
#The Tiller server files
tiller.cert.pem
tiller.key.pem

и затем подключите клиент helm к серверу tiller, используя следующую команду, как объяснено здесь :

helm ls --tls --tls-ca-cert ca.cert.pem --tls-cert helm.cert.pem --tls-key helm.key.pem
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...