Рубрики
Uncategorized

Пользовательские kubernetes Ingress по умолчанию и страницы ошибок

Когда вы устанавливаете кластер Kubernetes, один из вариантов, который вам нужно сделать, это то, что вступить в тебя … Теги с Docker, DevOps, Kubernetes, учебником.

Когда вы устанавливаете кластер Kubernetes, один из вариантов, который вы должны сделать, это то, что вступает в пользу для использования — или какая комбинация вхождения (Ингсри?) использовать.

Я использовал ряд контроллеров входа в кластерах Kubernetes на разных облаках, и все они имеют свое место и разум. Однако классический выбор — это вариант народного входа, предоставленный проектом Kubernetes, Контроллер Nginx-Ingress Отказ

Подожди, что является проникновением?

В условиях кластера Kubernetes, Контроллер входа Это кластерный ресурс, который будет направлять трафик в службы в кластере, от внешних запросов. Вот как mycuredgs.com переводится и направляется на боковые сайты/Mycuredgs-com пространство имен/услуга в кластере.

Пустой и мрачный

Когда вы развертываете контроллер входа NGINX, вы увидите некоторые очень базовые страницы ошибок, такие как:

Но вместо этого, если вы можете заставить это выглядеть что-то подобное:

Как это все работает

Поэтому, когда вы развертываете контроллер входа NGINX, он слушает на краю кластера Kubernetes для трафика. Если у него нет подходящего обслуживания для маршрута, это бросит ошибку. Эти ошибки традиционно обслуживаются от контейнера Nginx-Ingress-контроллера, но вы можете переопределить, откуда эти ошибки подаются с некоторыми модификациями Развертывание и Configmap Отказ

Чтобы настроить свои собственные страницы пользовательских ошибок, вам нужно вспомогать моего репо, построить собственную копию контейнеровочного изображения с собственными ошибками HTML-файлами и выполнять некоторые модификации на соответствующую конфигурацию развертывания.

Необязательно: изменить страницы ошибок

Если вы хотите установить собственные страницы ошибок по умолчанию, вам нужно сделать следующие шаги — если нет И вам просто хотелось бы использовать более широкие версии, которые у меня доступны, продолжайте Развертывание шаги

  1. Вилка мое репо: https://github.com/kenmoini/custom-nginx-ingress-errors.
  2. Измените страницы ошибок в www/ каталог, как вы видите
  3. Подключитесь к Docker Hub, Quay.io и т. Д. Для создания собственного имеющегося изображения
  4. Изменить 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.217              80/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»