﻿# Установка Ingress NGINX

> [HTML Version](install-ingress-nginx.html)

Ingress NGINX – это контроллер для управления входящим трафиком в Kubernetes. Он служит единой точкой доступа ко всем сервисам в кластере и позволяет настраивать маршрутизацию трафика по различным правилам.

Установка состоит из трёх этапов:

1. [Скачать Helm-чарт и конфигурационный файл](#download-helm-chart-and-config-file).

2. [Заполнить конфигурационный файл](#fill-config-file).

3. [Установить чарт ingress-nginx с помощью Helm в Kubernetes-кластер](#install-ingress-nginx-chart).

## Шаг 1. Скачать Helm-чарт и конфигурационный файл

Для установки через интернет получите конфигурационный файл \[OBJECT\], выполнив команду:

````
helm repo add elma365 https://charts.elma365.tech  
helm repo update  
helm show values elma365/ingress-nginx > values-ingress-nginx.yaml

````
Получение конфигурационного файла для установки в закрытом контуре без доступа в интернет

1. На компьютере с доступом в интернет скачайте архив актуальной версии (latest) чарта **ingress-nginx** из репозитория elma365. Для этого выполните следующую команду:

````
helm repo add elma365 https://charts.elma365.tech  
helm repo update  
helm pull elma365/ingress-nginx

2. ````
Полученный архив чарта \[OBJECT\] скопируйте на сервер, где будет выполняться установка.

3. Распакуйте этот чарт и скопируйте конфигурационный файл по умолчанию \[OBJECT\] в \[OBJECT\]:

````
tar -xf ingress-nginx-X.Y.Z.tgz  
cp ingress-nginx/values.yaml values-ingress-nginx.yaml
````

## ````
Шаг 2. Заполнить конфигурационный файл

Заполните конфигурационный файл \[OBJECT\] для установки Ingress NGINX:

````
\# Настройки ingress-nginx  
ingress-nginx:  
  controller:  
\# Разрешение на использование аннотаций \*-snippet  
    allowSnippetAnnotations: true  
\# Используйте DaemonSet или Deployment  
    kind: Deployment  
\# Список IP-адресов узлов, по которым доступна служба внешнего контроллера.  
    service:  
      externalIPs:  
        - 192.168.1.50  
\# селекторы для запуска на определенных узлах  
    tolerations: \[\]  
    affinity: \{\}  
    nodeSelector:  
      kubernetes.io/os: linux  
\# параметры подключения сбора метрик  
    metrics:  
      enabled: false  
      serviceMonitor:  
        enabled: false  
        scrapeInterval: 30

````
Заполнение параметров подключения к приватному registry для установки в закрытом контуре без доступа в интернет

  
Для подключения к приватному **registry**:

1. Скачайте образы ELMA365 и загрузите их в локальный реестр образов. Подробнее об этом читайте в статье [«Загрузка образов ELMA365»](downloadin-images-elma365.md).

2. Задайте адрес и путь для параметров \[OBJECT\] и \[OBJECT\].

3. Укажите наименование секрета с правами доступа к приватному **registry** в параметре \[OBJECT\]. Секрет должен быть создан вручную и зашифрован в Base64:

````
\# Дополнительные аннотации к веб-перехватчикам допуска.  
admissionWebhooks:  
  patch:  
\# параметры подключения к приватному registry  
  image:  
\# адрес и путь для приватного registry  
     registry: hub.elma365.tech/docker/addons  
     image: ingress-nginx/kube-webhook-certgen  
     tag: v1.4.3  
     digest: ""  
\# параметры подключения к приватному registry  
image:  
\# адрес и путь для приватного registry  
  registry: hub.elma365.tech/docker/addons  
  image: ingress-nginx/controller  
  tag: "v1.11.2"  
  digest: ""  
  digestChroot: ""  
\# секрет с правами доступа к приватному registry должен быть создан вручную, зашифрованный в Base64  
 # imagePullSecrets:  
 # - myRegistryKeySecretName
````

## ````
Шаг 3. Установить чарт ingress-nginx с помощью Helm в Kubernetes-кластер

Выполните установку чарта **ingress-nginx** в \[OBJECT\].

Для установки через интернет выполните следующую команду:

````
helm upgrade --install ingress-nginx elma365/ingress-nginx -f values-ingress-nginx.yaml -n ingress-nginx --create-namespace

````
Для офлайн-установки без доступа в интернет перейдите в каталог с загруженным чартом и выполните команду:

````
helm upgrade --install ingress-nginx ./ingress-nginx -f values-ingress-nginx.yaml -n ingress-nginx --create-namespace
````