Как подключить Chrome отладчик к Kubernetes Pod - PullRequest
0 голосов
/ 26 апреля 2018

Мне нужно отладить (с помощью chrome: // inspect / debugger) мое приложение nodejs, пока оно развернуто в модуле kubernetes.Я попытался добавить порт к службе перед развертыванием, но это не работает.

Я добавил порт 42126

apiVersion: v1
kind: Service
metadata:
  name: account-service # matches name in nginx.conf 
spec:
  ports:
  - name: traffic
    port: 80
    targetPort: 80
  - name: debug
    port: 42126
    targetPort: 42126
  type: NodePort # speculating need this so nginx can route to this ???????
  selector:
    app: account-pod # matches name of pod created by deployment account-deployment

Развертывание не изменено

apiVersion: apps/v1beta2 # for version 1.8, once 1.9 switch to apps/v1
kind: Deployment
metadata:
  name: account-deployment # name of the deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: account-pod # matches name of pod to create
  template:
    metadata:
      labels:
        app: account-pod # name of pod, matches deployment and service definition
    spec:
      containers:
      - name: account-container # name of docker container
        image: us.gcr.io/purple01-0000000/purple_account:2018_04_25_18_08

Образ докера создается со следующим.Я знаю, что это работает, так как я использую его для локальной отладки при запуске docker compose со всеми моими модулями.

FROM node:9.4
WORKDIR /app

COPY . /app/
RUN npm install

# comment out normal mode and created one for the debug
#CMD node ./bin/www  
CMD node --inspect-brk=0.0.0.0:42126 ./bin/www

EXPOSE 80 42126

Сконфигурированный вход отправляет трафик http службе nginx, которая обслуживает статические файлы и маршруты к различным микро-сервисам.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: basic-ingress
  annotations: 
    kubernetes.io/ingress.global-static-ip-name: ingress-ip 
spec:
  tls:
  - secretName: tls-secret
  backend:
    serviceName: purple-front-end-service 
    servicePort: 80

Я новичок в kubernetes, поэтому любые советы приветствуются.

Одна из многих вещей, которые я не получаю: вход прекращает https и отправляет http на мой фиолетовыйfront-end-сервис (сервис nginx).Каким образом порт 42126 в службе учетных записей становится доступным извне, чтобы я мог подключиться к нему через chrome?

Что я настраиваю в «Настройках обнаружения цели» для «chrome: // inspect / # devices»».

1 Ответ

0 голосов
/ 26 апреля 2018

в файле Docker, который создает ваше приложение, включите отладку (см. Строку CMD)

FROM node:9.4
WORKDIR /app
COPY ./app.js /app/app.js
COPY ./package.json /app/package.json
RUN npm install
CMD node --inspect-brk=0.0.0.0:42132 ./bin/www

Использование веб-сайта «Google Cloud Platform» Kubernetes Engine / Workloads / Выберите развертывание из отображаемого списка, чтобы показать подробности,Прокрутите вниз до «Управляемых модулей» и запишите имя.

В подробном разделе службы есть кнопка «Переадресация портов», которая отображает команду.enter image description here

На рабочем столе выполните команду, используя имя модуля и номер порта, который вы хотите использовать.учетная запись переадресации портов kubectl-85f7dcf65b-v27zx 8080: 42126

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...