Настройка входа в Kubernetes - PullRequest
0 голосов
/ 10 июля 2019

Я попытался настроить вход Kubernetes для маршрутизации внешнего http-трафика к модулю внешнего интерфейса (с путем /) и внутреннему модулю (с путем / отдыха / *), но я всегда получаю ошибку 400 вместо основного индекса nginx. HTML.

Итак, я попробовал пример Google Kubernetes на странице https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer,, но всегда получаю ошибку 400. Есть идеи?

Ниже приведен дескриптор развертывания веб-интерфейса "cup-fe" (работает nginx с угловым приложением):

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: cup-fe
  namespace: default
  labels:
    app: cup-fe
spec:
  replicas: 2
  selector:
    matchLabels:
      app: "cup-fe"
  template:
    metadata:
      labels:
        app: "cup-fe"
    spec:
      containers:
      - image: "eu.gcr.io/gpi-cup-242708/cup-fe:latest"
        name: "cup-fe"

Следующая услуга NodePort:

apiVersion: v1
kind: Service
metadata:
  name: cup-fe
  namespace: default
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: cup-fe
  type: NodePort

И, наконец, Ingress, но не в последнюю очередь, Ingress, чтобы выставить внешний интерфейс:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: http-ingress
spec:
  rules:
  - host: cup-fe
    http:
      paths:
      - path: /
        backend:
          serviceName: cup-fe
          servicePort: 80
      - path: /rest/*
        backend:
          serviceName: cup-be
          servicePort: 8080

Я оставил дескриптор развертывания "cup-be" (запускающий wildfly), потому что он очень похож на дескриптор "cup-fe". Обратите также внимание, что если я создаю службу LoadBalancer вместо NodePort, я могу получить доступ к веб-странице, но у меня возникают некоторые проблемы с CORS для вызова внутреннего интерфейса.

1 Ответ

1 голос
/ 11 июля 2019

Я предполагаю, что вы использовали селектор run: cup-fe всей конкретной конфигурации службы. Поскольку я заменил метку на app: cup-fe в cup-fe конфигурации службы, появились соответствующие оконечные точки Pod , и я также получил успешные ответы.

$ kubectl get ep | grep cup-fe|awk '{print $2}'
<IP_address>:80,<IP_address>:80

Если проблема не устранена, просто дайте мне знать и отправьте комментарий под моим ответом.

...