Почему мое веб-приложение 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.