kubernetes получает 502 плохих ворот - PullRequest
1 голос
/ 09 июня 2019

Совершенно новый для kubernetes, и у меня возникла проблема, когда я получаю 502 плохих шлюза при попытке поразить API.

Мои конфиги выглядят так

apiVersion: v1
kind: Service
metadata:
    name: api-cluster-ip-service
spec:
    type: ClusterIP
    selector:
        component: api
    ports:
        - port: 80
          targetPort: 5000


apiVersion: apps/v1
kind: Deployment
metadata:
  name: api-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      component: api
  template:
    metadata:
      labels:
        component: api
    spec:
      containers:
        - name: books-api
          image: mctabor/books-api
          ports:
            - containerPort: 5000


apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: books-ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
    - http:
        paths:
          - path: /api/?(.*)
            backend:
              serviceName: api-cluster-ip-service
              servicePort: 80

и в моему меня есть следующее приложение:

if __name__ == "__main__":
app.run(host='0.0.0.0', port=5000)

Не знаю, где я здесь ошибся

мой ip мини-куба - 192.168.99.104, и я пытаюсь пройти по маршруту API 192.168.99.104/ API / статус

1 Ответ

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

Вы не выставили свой сервис должным образом.Прежде всего, сервис типа ClusterIP доступен только внутри кластера.Поскольку вы используете миникуб, вам следует попробовать изменить тип do NodePort .

Во-вторых, порт , объявленный в yaml, является портом, который делает службу видимой для других служб в кластере.

После создания службы NodePort,выполните kubectl get svc, чтобы увидеть внешний порт, назначенный службе.Вы увидите что-то вроде 80: 30351 / TCP .Это означает, что вы можете получить доступ к сервису по номеру 192.168.99.104: 30351 .

Этот является отличным ответом при объяснении того, как предоставить сервис в minikube

.
...