Пару концепций, которые вам понадобятся:
Для достижения конечной цели (которая, если я правильно понимаю): Контейнер Узел JS Приложение
Шаг 1: Поместить приложениев контейнере
Шаг 2. Создайте развертывание / statefulset / daemonset в соответствии с вашими требованиями, используя контейнер, созданный выше в шаге 1
Объяснение:
На шаге 2 выше {по умолчанию}, если вы не указали (явно) служебную учетную запись (настраиваемую), тогда это будет учетная запись по умолчанию с учетными даннымикоторые смонтированы внутри контейнера (по умолчанию) здесь
volumeMounts:
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
name: default-token-xxxx
readOnly: true
, что может быть проверено этой командой после (успешного) создания модуля
kubectl get pod -n {yournamespace(by default is default)} POD_NAME -o yaml
Сейчас (Удачи !!) если вы не можете получить доступ к кластеру с этими учетными данными, то в зависимости от того, какую учетную запись выпеть и права этой учетной записи должны быть доступны.Например, если вы используете abc serviceaccount, у которого нет привязки к нему, вы не сможете просматривать кластер.В этом случае вам необходимо создать (сначала) роль (для чтения модулей) и привязку роли (для этой роли) к учетной записи службы.
UPDATE :Проблема была решена путем изменения Config.fromKubeconfig()
на Config.getInCluster()
Ref Пояснение: функция fromKubeconfig()
хороша, если вы запускаете свое приложение на узле, который является частью кластера kubernetes и в котором сохранен токен доступа к кластеру: /$USER/.kube/config
, но если вы хотите запустить приложение nodeJS в контейнере в модулетогда вам понадобится Config.getInCluster()
для загрузки токена.если вы достаточно любопытны, проверьте комментарии этого ответа!: P
Примечание: здесь обсуждаемая библиотека nodejs this