Не удается подключиться к кластеру Kubernetes по внешнему IP - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь получить доступ к .NET Web API, который я установил в доке и смонтировал в кластере Kubernet в Microsoft Azure.

Приложение отлично работает на локальном докере. Кластер работает, мое развертывание было правильным, а модули были созданы. Все, что я проверяю, в порядке, но я не могу получить доступ к своему приложению через внешний IP-адрес кластера (балансировщик нагрузки). Это мой файл развертывания YAML:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ohmioapi-deployment
spec:
  selector:
    matchLabels:
      app: ohmioapi
  replicas: 1
  template:
    metadata:
      labels:
        app: ohmioapi
    spec:
      containers:
      - name: ohmioapi
        image: ohmiocontainers.azurecr.io/ohmioapi:latest
        imagePullPolicy: Always
        ports:
        - containerPort: 15200
      imagePullSecrets:
        - name: acr-auth
---
apiVersion: v1
kind: Service
metadata:
  name: ohmioapi
  labels:
    app: ohmioapi
spec:
  selector:
    app: ohmioapi
  ports:
  - port: 15200
    nodePort: 30200
    protocol: TCP
  type: LoadBalancer

Может кто-нибудь дать подсказку, с чего начать искать? Спасибо!

Ответы [ 3 ]

0 голосов
/ 28 августа 2018

Я бы назвал порт развертывания / pods именем (например, http), а затем заставил бы службу обслуживать порт 80, но указывал порт pod по имени ... таким образом, вам не нужно беспокоиться о номерах портов. при подключении к услуге.

Кроме того, вам не нужно или не нужно использовать nodePort, если вы используете тип LoadBalancer.

1008 * Е.Г. *

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ohmioapi-deployment
spec:
  selector:
    matchLabels:
      app: ohmioapi
  replicas: 1
  template:
    metadata:
      labels:
        app: ohmioapi
    spec:
      containers:
      - name: ohmioapi
        image: ohmiocontainers.azurecr.io/ohmioapi:latest
        imagePullPolicy: Always
        ports:
        - name: http
          containerPort: 15200
      imagePullSecrets:
        - name: acr-auth

---
apiVersion: v1
kind: Service
metadata:
  name: ohmioapi
  labels:
    app: ohmioapi
spec:
  selector:
    app: ohmioapi
  ports:
  - name: http
    port: 80
    targetPort: http
    protocol: TCP
  type: LoadBalancer
0 голосов
/ 28 августа 2018

Вы можете использовать команду kubectl get service, чтобы получить всю информацию об услугах и проверить ваш сервис ohmioapi, результат будет такой:

enter image description here

Или вы можете использовать команду kubectl describe service serviceName, чтобы получить более подробную информацию о вашем сервисе, результат будет таким:

enter image description here

Вы можете проверить сопоставление портов в балансировщике нагрузки и доступ из браузера через внешний IP и порт.

Вы также можете использовать команду kubectl edit service serviceName для редактирования и проверки из файла конфигурации, созданного Kunernetes, результат будет таким:

enter image description here

0 голосов
/ 27 августа 2018

Уверен, что вам нужен 'targetport' вместо 'nodeport' (или просто отбросьте его, если порт тот же).

https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer

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