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

У меня есть следующий файл развертывания

apiVersion: apps/v1
kind: Deployment
metadata:
  name: family-tree-deployment
  labels:
    app: familytree
spec:
  replicas: 1
  selector:
    matchLabels:
      app: familytree
  template:
    metadata:
      labels:
        app: familytree
    spec:
      containers:
      - name: familytree
        image: index.docker.io/koustubh/familytree:v1.0
        ports:
        - containerPort: 8080

Я мог бы успешно создать развертывание, используя kubectl create -f deploy.yml

Теперь я просто показал это развертывание с помощью следующей команды

kubectl expose deployment family-tree-deployment --type=LoadBalancer --name=familytree-service

Служба успешно создана.

Выход

$ kubectl get svc
    NAME                 TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)          AGE
    familytree-service   LoadBalancer   10.51.244.161   35.221.113.235   8080:30505/TCP   1h

$ kubectl describe svc familytree-service
    Name:                     familytree-service
    Namespace:                default
    Labels:                   app=familytree
    Annotations:              <none>
    Selector:                 app=familytree
    Type:                     LoadBalancer
    IP:                       10.51.244.161
    LoadBalancer Ingress:     35.221.113.235
    Port:                     <unset>  8080/TCP
    TargetPort:               8080/TCP
    NodePort:                 <unset>  30505/TCP
    Endpoints:                10.48.4.7:8080
    Session Affinity:         None
    External Traffic Policy:  Cluster
    Events:                   <none>

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

Я убедился, что брандмауэр разрешает порт 8080. Мое приложение работает на порту 8080

1 Ответ

0 голосов
/ 05 сентября 2018

Сгенерированный объект Service выглядит совершенно корректно, поэтому мы можем исключить проблему с меткой или отсутствующий публичный IP-адрес. Кроме того, вы можете получить внутренний доступ к своей Службе, что означает, что правило брандмауэра было применено неправильно, скорее всего.

Пожалуйста, убедитесь, что вы разрешаете входящий трафик следующим образом

  1. из интернета на балансировщик нагрузки по TCP-порту 8080
  2. от балансировщика нагрузки ко всем узлам Kubernetes через TCP-порт 30505
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...