Назад | Перейти на главную страницу

Настройки балансировщика нагрузки Google Cloud продолжают сбрасываться

В настоящее время я настраиваю среду для развертывания приложения на облачной платформе Google с использованием кубернетов.

Я попытался настроить Ingress для подключения к моему NodePort services со следующей конфигурацией yaml:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
    ingress.gcp.kubernetes.io/pre-shared-cert: "my-certificate"
spec:
  rules:
  - host: example.com
    http:
      paths:
      - path: /*
        backend:
          serviceName: website
          servicePort: 80
      - path: /api/*
        backend:
          serviceName: api
          servicePort: 80

Так example.com и все маршруты идут к моему website сервис, и все запросы к example.com/api/ перейти в мое приложение API.

Единственное, что я хочу, чтобы все запросы были переписаны в мое приложение как /<endpoint> вместо того /api/<endpoint>. Всего несколько дней назад в gcp была добавлена ​​возможность указывать дополнительные правила перенаправления и перезаписи для балансировщиков нагрузки, но она пока недоступна для настройки в YAML (как показано здесь: https://github.com/kubernetes/ingress-gce/issues/109).

Теперь я пошел, чтобы вручную настроить перезапись хоста через облачную консоль. После сохранения настройки восстанавливаются примерно через 10 минут, и я не могу понять, почему.

Я также хочу настроить правило перенаправления с http на https, но я тоже не могу создать их, потому что они, похоже, тоже возвращаются.

Может ли кто-нибудь объяснить, почему это так?

Я не уверен, имеет ли это значение, но я использовал kubectl apply -f my-ingress.yaml создать вход

Что сказал @Alex Moore - поскольку GCP LB является объектом K8s, он контролирует его конфигурацию.

Если вы хотите использовать функции, которые нельзя настроить внутри K8s, вы должны создать LB вне K8s, создать службу nodePort и указать GCP LB на узлы.