Балансировщик нагрузки Docker для Mac Kubernetes NoHttpResponseException - PullRequest
0 голосов
/ 13 января 2019

Я пытаюсь запустить простой сервер балансировки нагрузки, подключающийся к модулю развертывания.
Я установил Docker для Mac крайнюю версию.
Проблема в том, что когда я пытаюсь сделать GET-запрос к выставленному URL-адресу балансировщика нагрузки http://localhost:8081/api/v1/posts/health,, появляется сообщение об ошибке:

org.apache.http.NoHttpResponseException: localhost: 8081 не удалось ответить

При выполнении:

k get services 

Я получаю:

enter image description here

enter image description here

Очевидно, что служба работает, но localhost: 8081 не отвечает, не знаю почему, я продолжаю бороться с этим.

Мой сервисный ресурс:

---
apiVersion: v1
kind: Service
metadata:
  name: posts-api-svc
  # namespace: nginx-ingress
  labels:
    app: posts-api
    rel: beta
    env: dev
spec:
  type: LoadBalancer
  selector:
    app: posts-api
    rel: beta
    env: dev
  ports:
    - protocol: TCP
      port: 8081

Мое развертывание:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: posts-api-deployment
  # namespace: nginx-ingress
  labels:
    app: posts-api
    rel: beta
    env: dev
spec:
  replicas: 1
  selector:
    matchLabels:
      app: posts-api
      env: dev
      rel: beta
  template:
    metadata:
      labels:
        app: posts-api
        env: dev
        rel: beta
    spec:
      containers:
        - name: posts-api
          image: kimgysen/posts-api:latest
          ports:
          - containerPort: 8083
          livenessProbe:
            httpGet:
              path: /api/v1/posts/health
              port: 8083
            initialDelaySeconds: 120
            timeoutSeconds: 1

Должна быть базовая настройка!

Мой модуль развертывания не показывает перезапусков, все выглядит хорошо:

enter image description here

Любой совет приветствуется!

Примечание:

enter image description here

Редактировать

При использовании порта 31082 выдается ошибка:

org.apache.http.conn.HttpHostConnectException: подключение к localhost: 31082 [localhost / 127.0.0.1] не удалось: соединение отклонено (Соединение отказано)

Нет конкретной причины, по которой я использовал порт 8083.
Это потому, что я сначала попробовал нодпорт (с несколькими службами), а теперь балансировщик нагрузки.
Следующим шагом будет вход, но у меня не получилось с первого раза, и поэтому я стараюсь идти шаг за шагом.

Я использовал порт 8081 вместо порта 80, потому что где-то читал, что на Mac OSX порт 80 предназначен только для пользователя root.

1 Ответ

0 голосов
/ 21 января 2019

Сервисный порт должен соответствовать Deployment containerPort.
Теперь я могу получить доступ к API на localhost: 8083.

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