Когда вы устанавливаете кластер Kubernetes, один из вариантов, который вы должны сделать, это то, что вступает в пользу для использования — или какая комбинация вхождения (Ингсри?) использовать.
Я использовал ряд контроллеров входа в кластерах Kubernetes на разных облаках, и все они имеют свое место и разум. Однако классический выбор — это вариант народного входа, предоставленный проектом Kubernetes, Контроллер Nginx-Ingress Отказ
Подожди, что является проникновением?
В условиях кластера Kubernetes, Контроллер входа Это кластерный ресурс, который будет направлять трафик в службы в кластере, от внешних запросов. Вот как mycuredgs.com переводится и направляется на боковые сайты/Mycuredgs-com пространство имен/услуга в кластере.
Пустой и мрачный
Когда вы развертываете контроллер входа NGINX, вы увидите некоторые очень базовые страницы ошибок, такие как:
Но вместо этого, если вы можете заставить это выглядеть что-то подобное:
Как это все работает
Поэтому, когда вы развертываете контроллер входа NGINX, он слушает на краю кластера Kubernetes для трафика. Если у него нет подходящего обслуживания для маршрута, это бросит ошибку. Эти ошибки традиционно обслуживаются от контейнера Nginx-Ingress-контроллера, но вы можете переопределить, откуда эти ошибки подаются с некоторыми модификациями Развертывание и Configmap Отказ
Чтобы настроить свои собственные страницы пользовательских ошибок, вам нужно вспомогать моего репо, построить собственную копию контейнеровочного изображения с собственными ошибками HTML-файлами и выполнять некоторые модификации на соответствующую конфигурацию развертывания.
Необязательно: изменить страницы ошибок
Если вы хотите установить собственные страницы ошибок по умолчанию, вам нужно сделать следующие шаги — если нет И вам просто хотелось бы использовать более широкие версии, которые у меня доступны, продолжайте Развертывание шаги
- Вилка мое репо: https://github.com/kenmoini/custom-nginx-ingress-errors.
- Измените страницы ошибок в
www/каталог, как вы видите - Подключитесь к Docker Hub, Quay.io и т. Д. Для создания собственного имеющегося изображения
- Изменить
K8S-развертывание.yamlФайл в репо, чтобы указать на ваше собственное изображение.
Развертывание
Эти инструкции предполагают, что вы развернули контроллер входа в по умолчанию Ingress-Nginx пространство имен.
1) Клонировать по моему репо: https://github.com/kenmoini/custom-nginx-ingress-errors.
git clone https://github.com/kenmoini/custom-nginx-ingress-errors cd custom-nginx-ingress-errors
2) Развертывание в ваших кластере Kubernetes — файл YAML уже нацелен на Nginx-Ingress пространство имен:
kubectl apply -f k8s-deployment.yaml
3) Изменить Ingress-Nginx/Ingress-Nginx-Controller Развертывание и установить значение --default-Backend-service Флаг к пространству имен/SVC-имя вновь созданного ошибки Backend, которая должна быть ingress-nginx/nginx-errors по умолчанию.
export KUBE_EDITOR="nano" # optional, switch to the Nano editor
kubectl edit deployment/ingress-nginx-controller -n ingress-nginx
---
apiVersion: apps/v1
kind: Deployment
[...]
spec:
[...]
template:
spec:
containers:
- args:
- /nginx-ingress-controller
- --configmap=$(POD_NAMESPACE)/nginx-configuration
- --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
- --udp-services-configmap=$(POD_NAMESPACE)/udp-services
- --publish-service=$(POD_NAMESPACE)/ingress-nginx
- --annotations-prefix=nginx.ingress.kubernetes.io
- --default-backend-service=$(POD_NAMESPACE)/nginx-errors
[...]
4) Редактировать Ingress-Nginx/Nginx-Configuration Configmap и добавить ключ: значение пара «Пользовательские ошибки http»: "404 500,503" :
kubectl edit cm/nginx-configuration -n ingress-nginx --- apiVersion: v1 kind: ConfigMap metadata: [...] data: custom-http-errors: "404,500,503"
5) Проверьте свои новые страницы ошибок, навигацию на балансировщик нагрузки вход:
$ kc get services -n ingress-nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ingress-nginx LoadBalancer 10.245.31.157 173.28.135.40 80:32563/TCP,443:30965/TCP 18d nginx-errors ClusterIP 10.245.17.21780/TCP 117m $ curl -sS http://173.28.135.40 Error 404 [...]
Бонус: Docker Hub Предварительно нажимной крючок
Этот репо также имеет дополнительный файл в Крючки/предварительный крючок Что создает еще один тег с фиксацией Git Reppo — это довольно аккуратно!
Оригинал: «https://dev.to/kenmoini/custom-kubernetes-ingress-default-backend-and-error-pages-3alh»