Не удается связаться с модулями kubernetes с помощью службы через прокси-сервер kubectl - PullRequest
0 голосов
/ 20 мая 2019

У меня есть deamonset, который определяет

ports:
- containerPort: 24231

в спецификации.

После развертывания набора я могу свернуть /metrics конечную точку на локальном хосте (в контейнере) и могу свернуть конечную точкуодин контейнер из другого контейнера того же набора.

Затем я определяю службу следующим образом:

apiVersion: v1
kind: Service
metadata:
  name: fluentd
  labels:
    app: fluentd
spec:
  ports:
    - name: prometheus
      port: 80
      targetPort: 24231
  selector:
    app: fluentd

Я ожидаю, что это позволит мне: kubectl proxy --port=8001

И после перехода по ссылке: http://127.0.0.1:8001/api/v1/namespaces/default/services/fluentd:prometheus/proxy/metrics

Я вижу следующее:

Error: 'dial tcp 10.136.4.30:24231: i/o timeout'
Trying to reach: 'http://10.136.4.30:24231/metrics'

Но http://127.0.0.1:8001/api/v1/namespaces/default/services/fluentd возвращает мне служебную информацию, как и ожидалось, которая включает в себя:

"spec": {
    "ports": [
      {
        "name": "prometheus",
        "protocol": "TCP",
        "port": 80,
        "targetPort": 24231

Что я делаю не так.Эта служба работала неделю назад, но перестала работать после перераспределения.

Ответы [ 2 ]

1 голос
/ 27 июня 2019

Это была проблема GKE, которую мне пришлось решить с их поддержкой.

0 голосов
/ 26 июня 2019

Есть несколько вещей, которые вы должны проверить:

  1. Конечные точки - если вы можете связаться с ними через ваш сервис
  2. Проверить селекторы и метки - если они правильные
  3. Используйте kubectl port-forward вместо прокси - если пункты выше не помогли.Подробнее об этом здесь .

Я перечислил свое предложение от наиболее вероятного до наименее вероятного.Пожалуйста, дайте мне знать, если это помогло.

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