Почему мое веб-приложение django не загружается для моих графиков, которые у меня есть на kubernetes?

У меня есть веб-приложение Django, которое может отображать графики прогнозов, используя библиотеку машинного обучения Sktime и библиотеку plotly для графиков. Оно отлично работает на моей локальной машине. Однако, когда я запускаю его на kubernetes, оно не загружается. Веб-страница просто не загружается. Я пробовал изменять файлы ресурсов yaml, увеличивая cpu и память до "2000m" и "1000mi" соответственно. К сожалению, это не устраняет проблемы. Сейчас я запускаю свое приложение с помощью команды minikube, "minikube service --url mywebsite". Я не знаю, в чем причина: в способе запуска или в моем yaml-файле. Кто-нибудь знает? Мой yaml-файл предоставляется. apiVersion: v1 тип: сервис метаданные: имя: mywebsite спецификация: тип: LoadBalancer селектор: приложение: mywebsite порты: - протокол: TCP имя: http порт: 8743 целевой порт: 8000

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mywebsite
spec:
  selector:
    matchLabels:
      app: mywebsite
  template:
    metadata:
      labels:
        app: mywebsite
    spec:
      containers:
      - name: mywebsite
        image: mywebsite
        imagePullPolicy: Never
        ports:
        - containerPort: 8000
        resources:
          requests:
            cpu: 200m
            memory: 100Mi
          limits:
            memory: "1Gi"
            cpu: "200m"

Опубликован ответ с общим решением, так как не было предоставлено больше деталей / логов.


Согласно официальной документации minikube для доступа к приложениям minikube поддерживает оба сервиса NodePort и LoadBalancer:

В Kubernetes существует две основные категории сервисов: NodePort и LoadBalancer

.

Для доступа к службе NodePort необходимо использовать команду minikube service --url <service-name> - проверьте это.

Для доступа к службе LoadBalancer необходимо использовать команду minikube tunnel - check this.

Поскольку тип LoadBalancer также раскрывает NodePort, он должен работать с командой minikube service, как вы и пытались. Я установил minikube с драйвером Docker. Я создал пример развертывания, затем я создал пример службы LoadBalancer для этого развертывания. После этого я запустил minikube service --url <my-service> - На выходе я получил адрес вроде:

http://192.168.49.2:30711

30711 - это порт узла. Он работает нормально, когда я пытаюсь получить доступ к этому адресу.

Почему он не работает для вас? Некоторые возможные причины:

  • Вы не используете Linux - на других ОС есть некоторые ограничения для Minikube - например, проверьте этот ответ для Mac. Также это зависит от того, какой драйвер minikube вы используете.
  • Ваши капсулы не запущены - вы можете проверить это с помощью команды kubectl get pods
  • Вы указали неправильные порты в определениях
  • .
  • Что-то не так с вашим изображением

Также проверьте раздел "Устранение неполадок" на сайте minikube.

Вернуться на верх