Облачная платформаAdvanced

Создание LoadBalancer Ingress с помощью kubectl

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

В этом разделе в качестве примера используется Nginx workload, чтобы описать, как создать LoadBalancer ingress с помощью kubectl.

Необходимые условия

Ограничения

  • Только кластеры v1.17 и новее поддерживают выделенные load balancers.
  • Рекомендуется, чтобы другие ресурсы не использовали load balancer, автоматически создаваемый Ingress. В противном случае load balancer будет занят после удаления Ingress, что приведёт к оставшимся ресурсам.
  • После создания Ingress обновляйте и поддерживайте конфигурацию выбранных load balancers в консоли CCE. Не изменяйте конфигурацию в консоли ELB. В противном случае сервис Ingress может работать некорректно.
  • URL, зарегистрированный в политике переадресации Ingress, должен совпадать с URL, используемым для доступа к backend Service. В противном случае будет возвращена ошибка 404.
  • В кластере IPVS, если LoadBalancer Ingress и Service используют один и тот же load balancer, доступ к Ingress из узлов и контейнеров кластера невозможен. Это происходит потому, что kube-proxy привязывает адрес LoadBalancer Service к мосту ipvs-0, перехватывающему трафик ELB. Используйте разные load balancers для LoadBalancer Ingress и Service.
  • Выделенный load balancer должен быть типа application (HTTP/HTTPS) и поддерживать частные сети (с частным IP-адресом).
  • Если несколько Ingress обращаются к одному порту ELB в кластере, параметры конфигурации listener (например, сертификат, привязанный к listener, и атрибут HTTP/2 listener) определяются конфигурацией первого Ingress.

Автоматическое создание Load Balancer при создании Ingress

Ниже описано, как выполнить команду kubectl для автоматического создания load balancer при создании Ingress.

  1. Используйте kubectl для доступа к кластеру. Подробности см. в Accessing a Cluster Using kubectl.
  2. Создайте файл YAML с именем ingress-test.yaml. При желании вы можете изменить имя файла.

    vi ingress-test.yaml
    Note

    Начиная с кластера v1.23, версия Ingress переключается с networking.k8s.io/v1beta1 на networking.k8s.io/v1. Подробности о различиях между v1 и v1beta1 см. в Ingress API Version Upgrade in CCE Clusters v1.23.

    Пример совместного load balancer (доступ через публичную сеть) для кластеров v1.23 и новее:

    apiVersion: networking.k8s.io/ v1
    kind: Ingress
    metadata:
    name: ingress-test
    annotations:
    kubernetes.io/elb.class: union
    kubernetes.io/elb.port: '80'
    kubernetes.io/elb.autocreate:
    '{
    "type":"public",
    "bandwidth_name":"cce-bandwidth-******",
    "bandwidth_chargemode":"bandwidth" ,
    "bandwidth_size":5,
    "bandwidth_sharetype":"PER",
    "vip_subnet_cidr_id": "*****",
    "vip_address": "**.**.**.**",
    "eip_type":"5_bgp"
    }'
    kubernetes.io/elb.tags: key1=value1,key2=value2 # ELB resource tags
    spec:
    rules:
    - host: ''
    http:
    paths:
    - path: '/'
    backend:
    service:
    name: <your_service_name> # Replace it with the name of your target Service.
    port:
    number: <your_service_port> # Replace it with the port number of your target Service.
    property:
    ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
    pathType: ImplementationSpecific
    ingressClassName: cce # A LoadBalancer ingress is used.

    Пример общего балансировщика нагрузки (доступ из публичной сети) для кластеров v1.21 и более ранних:

    apiVersion: networking.k8s.io/ v1beta1
    kind: Ingress
    metadata:
    name: ingress-test
    annotations:
    kubernetes.io/elb.class: union
    kubernetes.io/ingress.class: cce # A LoadBalancer ingress is used.
    kubernetes.io/elb.port: '80'
    kubernetes.io/elb.autocreate:
    '{
    "type":"public",
    "bandwidth_name":"cce-bandwidth-******",
    "bandwidth_chargemode":"bandwidth" ,
    "bandwidth_size":5,
    "bandwidth_sharetype":"PER",
    "eip_type":"5_bgp"
    }'
    kubernetes.io/elb.tags: key1=value1,key2=value2 # ELB resource tags
    spec:
    rules:
    - host: ''
    http:
    paths:
    - path: '/'
    backend:
    serviceName: <your_service_name> # Replace it with the name of your target Service.
    servicePort: <your_service_port> # Replace it with the port number of your target Service.
    property:
    ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH

    Пример выделенного балансировщика нагрузки (доступ из публичной сети) для кластеров v1.23 и более новых:

    apiVersion: networking.k8s.io/ v1
    kind: Ingress
    metadata:
    name: ingress-test
    namespace: default
    annotations:
    kubernetes.io/elb.class: performance
    kubernetes.io/elb.port: '80'
    kubernetes.io/elb.autocreate:
    '{
    "type": "public",
    "bandwidth_name": "cce-bandwidth-******",
    "bandwidth_chargemode": "bandwidth" ,
    "bandwidth_size": 5,
    "bandwidth_sharetype": "PER",
    "eip_type": "5_bgp",
    "vip_subnet_cidr_id": "*****",
    "vip_address": "**.**.**.**",
    "elb_virsubnet_ids":["*****"],
    "available_zone": [
    "ru-moscow-1a"
    ],
    "l7_flavor_name": "L7_flavor.elb.s1.small"
    }'
    kubernetes.io/elb.tags: key1=value1,key2=value2 # ELB resource tags
    spec:
    rules:
    - host: ''
    http:
    paths:
    - path: '/'
    backend:
    service:
    name: <your_service_name> # Replace it with the name of your target Service.
    port:
    number: <your_service_port> # Replace it with the port number of your target Service.
    property:
    ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
    pathType: ImplementationSpecific
    ingressClassName: cce

    Пример выделенного балансировщика нагрузки (доступ из публичной сети) для кластеров v1.21 и более ранних:

    apiVersion: networking.k8s.io/ v1beta1
    kind: Ingress
    metadata:
    name: ingress-test
    namespace: default
    annotations:
    kubernetes.io/elb.class: performance
    kubernetes.io/ingress.class: cce
    kubernetes.io/elb.port: '80'
    kubernetes.io/elb.autocreate:
    '{
    "type": "public",
    "bandwidth_name": "cce-bandwidth-******",
    "bandwidth_chargemode": "bandwidth" ,
    "bandwidth_size": 5,
    "bandwidth_sharetype": "PER",
    "eip_type": "5_bgp",
    "elb_virsubnet_ids":["*****"],
    "available_zone": [
    "ru-moscow-1a"
    ],
    "l7_flavor_name": "L7_flavor.elb.s1.small"
    }'
    kubernetes.io/elb.tags: key1=value1,key2=value2 # ELB resource tags
    spec:
    rules:
    - host: ''
    http:
    paths:
    - path: '/'
    backend:
    serviceName: <your_service_name> # Replace it with the name of your target Service.
    servicePort: <your_service_port> # Replace it with the port number of your target Service.
    property:
    ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH

    Table 1 Ключевые параметры

    Параметр

    Обязательно

    Тип

    Описание

    kubernetes.io/elb.class

    Да

    String

    Выберите подходящий тип балансировщика нагрузки. Этот параметр нельзя изменить после создания ingress.

    • union: общий балансировщик нагрузки
    • performance: выделенный балансировщик нагрузки

    kubernetes.io/ingress.class

    Yes

    (только для кластеров v1.21 или более ранних)

    String

    cce: используется проприетарный LoadBalancer ingress.

    Этот параметр обязателен при создании ingress.

    ingressClassName

    Yes

    (только для кластеров v1.23 или более новых)

    String

    cce: используется проприетарный LoadBalancer ingress.

    Этот параметр обязателен при создании ingress.

    kubernetes.io/elb.port

    No

    String

    Этот параметр указывает внешний порт, зарегистрированный с адресом LoadBalancer Service.

    Значение находится в диапазоне от 1 до 65535. Значение по умолчанию — 80 для HTTP и 443 для HTTPS.

    ПРИМЕЧАНИЕ:

    Некоторые порты на совместно используемом load balancer являются высоко рискованными и блокируются по умолчанию, например, порт 21.

    kubernetes.io/elb.subnet-id

    None

    String

    ID подсети, в которой находится кластер. Значение может содержать от 1 до 100 символов.

    • Обязательно, когда кластер v1.11.7-r0 или более ранней версии должен быть создан автоматически.
    • Необязательно для кластеров версии новее v1.11.7-r0. По умолчанию оставляется пустым.

    kubernetes.io/elb.enterpriseID

    No

    String

    Этот параметр доступен в кластерах Kubernetes версии v1.15 и выше. В кластерах Kubernetes версии ниже v1.15 load balancers создаются в проекте по умолчанию.

    Этот параметр указывает ID enterprise‑проекта, в котором создаётся load balancer. Он применим только к enterprise‑аккаунтам с включёнными enterprise‑проектами. После выбора ID enterprise‑проекта ресурсы могут быть созданы в enterprise‑проекте ELB.

    Значение содержит от 1 до 100 символов.

    Как получить:

    Войдите в EPS console, click название целевого enterprise project. On the enterprise project details page, найдите ID поле и скопируйте ID.

    kubernetes.io/elb.autocreate

    Yes

    elb.autocreate object

    Создавать ли автоматически балансировщик нагрузки, связанный с ingress. Для получения подробной информации о описании поля см. Table 2. Этот параметр нельзя изменить после создания ingress.

    Пример:

    • Автоматически созданный выделенный балансировщик нагрузки с привязанным EIP:

      '{"type":"public","bandwidth_name":"cce-bandwidth-1741230802502","bandwidth_chargemode":"bandwidth","bandwidth_size":5,"bandwidth_sharetype":"PER","eip_type":"5_bgp","available_zone":["*****"],"elb_virsubnet_ids":["*****"],"l7_flavor_name":"L7_flavor.elb.pro.max","l4_flavor_name":"","vip_subnet_cidr_id":"*****"}'

    • Автоматически созданный выделенный балансировщик нагрузки без привязанного EIP:

      '{"type":"inner","available_zone":["*****"],"elb_virsubnet_ids":["*****"],"l7_flavor_name":"L7_flavor.elb.pro.max","l4_flavor_name":"","vip_subnet_cidr_id":"*****"}'

    • Автоматически созданный совместный балансировщик нагрузки с привязанным EIP:

      '{"type":"public","bandwidth_name":"cce-bandwidth-1551163379627","bandwidth_chargemode":"bandwidth","bandwidth_size":5,"bandwidth_sharetype":"PER","eip_type":"5_bgp","name":"james"}'

    • Автоматически созданный совместный балансировщик нагрузки без привязанного EIP:

      '{"type":"inner", "name": "A-location-d-test"}'

    kubernetes.io/elb.tags

    Нет

    String

    Определяет, добавлять ли теги ресурсов к балансировщику нагрузки. Эта функция доступна только при автоматическом создании балансировщика нагрузки и когда кластер имеет версию v1.23.11-r0, v1.25.6-r0, v1.27.3-r0 или более новую.

    Тег имеет формат "key=value". Для разделения нескольких тегов используйте запятые (,). Балансировщик нагрузки поддерживает максимум 20 тегов ресурсов. CCE автоматически добавляет один тег, уменьшая доступную квоту до 19.

    host

    Нет

    String

    Доменное имя для доступа к Service. По умолчанию этот параметр оставлен пустым, и доменное имя должно полностью совпадать. Убедитесь, что доменное имя зарегистрировано и лицензировано. После настройки политики переадресации с указанным доменным именем необходимо использовать это доменное имя для доступа.

    path

    Да

    String

    Пользовательский путь маршрута. Все внешние запросы доступа должны соответствовать host и path.

    ПРИМЕЧАНИЕ:

    Добавленный здесь путь доступа должен существовать в бекенд‑приложении. В противном случае переадресация завершится неудачей.

    Например, URL доступа по умолчанию для приложения Nginx — /usr/share/nginx/html. При добавлении /test в политику переадресации ingress убедитесь, что URL доступа вашего приложения Nginx содержит /usr/share/nginx/html/test. В противном случае будет возвращена ошибка 404.

    ingress.beta.kubernetes.io/url-match-mode

    Нет

    String

    Политика сопоставления маршрута.

    По умолчанию: STARTS_WITH (совпадение по префиксу)

    Параметры:

    • EQUAL_TO: точное совпадение
    • STARTS_WITH: совпадение по префиксу
    • REGEX: совпадение по регулярному выражению

    pathType

    Да

    String

    Тип пути. Это поле поддерживается только кластерами версии v1.23 и выше.

    • ImplementationSpecific: Метод сопоставления зависит от Ingress Controller. Метод сопоставления, определённый ingress.beta.kubernetes.io/url-match-mode, используется в CCE.
    • Exact: точное совпадение URL, чувствительное к регистру.
    • Prefix: префиксное совпадение, чувствительное к регистру. При этом методе путь URL разделяется на несколько элементов с помощью слешей (/) и элементы сравниваются последовательно. Если каждый элемент URL совпадает с путем, подпути URL могут маршрутизироваться нормально.
      ПРИМЕЧАНИЕ:
      • При префиксном совпадении каждый элемент должен точно совпадать. Если последний элемент URL является подстрокой последнего элемента в пути запроса, совпадение не выполняется. Например, /foo/bar совпадает с /foo/bar/baz, но не совпадает с /foo/barbaz.
      • Когда элементы разделены слешами (/), если URL или путь запроса заканчивается слешем (/), конечный слеш (/) игнорируется. Например, /foo/bar совпадает с /foo/bar/.

    См. examples сопоставления путей ingress.

    Table 2 структура данных elb.autocreate

    Параметр

    Обязательно

    Тип

    Описание

    name

    Нет

    String

    Имя автоматически созданного балансировщика нагрузки.

    Значение может содержать от 1 до 64 символов. Допустимы только буквы, цифры, символы подчеркивания (_), дефисы (-) и точки (.).

    По умолчанию: cce-lb+service.UID

    type

    No

    String

    Тип сети балансировщика нагрузки.

    • public: публичный сетевой балансировщик нагрузки
    • inner: приватный сетевой балансировщик нагрузки

    По умолчанию: inner

    bandwidth_name

    Yes for public network load balancers

    String

    Имя пропускной способности. Значение по умолчанию: cce-bandwidth-******.

    Значение может содержать от 1 до 64 символов. Допустимы только буквы, цифры, символы подчеркивания (_), дефисы (-) и точки (.).

    bandwidth_chargemode

    Да для public network load balancers

    String

    Режим пропускной способности.

    • bandwidth: оплата по пропускной способности
    • traffic: оплата по трафику

    bandwidth_size

    Да для public network load balancers

    Integer

    Размер пропускной способности. Значение по умолчанию находится в диапазоне от 1 Mbit/s до 2000 Mbit/s. Настройте этот параметр в соответствии с диапазоном пропускной способности, разрешённым в вашем регионе.

    Минимальный шаг изменения пропускной способности зависит от диапазона пропускной способности.

    • Минимальный шаг составляет 1 Mbit/s, если разрешённая пропускная способность не превышает 300 Mbit/s.
    • Минимальный шаг составляет 50 Mbit/s, если разрешённый диапазон пропускной способности от 300 Mbit/s до 1000 Mbit/s.
    • Минимальный шаг составляет 500 Mbit/s, если разрешённая пропускная способность превышает 1000 Mbit/s.

    bandwidth_sharetype

    Да для public network load balancers

    String

    Режим совместного использования пропускной способности.

    • PER: выделенная пропускная способность

    eip_type

    Да для публичных сетевых балансировщиков нагрузки

    String

    Тип EIP.

    • 5_bgp: динамический BGP

    Типы различаются по регионам. Подробнее см. консоль EIP.

    vip_subnet_cidr_id

    No

    String

    Идентификатор IPv4‑подсети, в которой находится балансировщик нагрузки. Эта подсеть используется для выделения IP‑адресов балансировщику нагрузки для предоставления внешних сервисов. IPv4‑подсеть должна принадлежать VPC кластера.

    Если этот параметр не указан, балансировщик нагрузки и кластер по умолчанию будут находиться в одной подсети.

    Это поле можно указывать только для кластеров версии v1.21 и выше.

    Как получить:

    Войдите в VPC console. В панели навигации выберите Subnets. Отфильтруйте целевую подсеть по имени VPC кластера, нажмите название подсети и скопируйте IPv4 Subnet ID на вкладке Summary.

    ipv6_vip_virsubnet_id

    No

    String

    Идентификатор IPv6 подсети, в которой развернут балансировщик нагрузки. Для подсети необходимо включить IPv6.

    Этот параметр доступен только для выделенных балансировщиков нагрузки.

    Как получить:

    Войдите в VPC console. В панели навигации выберите Subnets. Отфильтруйте целевую подсеть по имени VPC кластера, нажмите название подсети и скопируйте Network ID на вкладке Summary.

    elb_virsubnet_ids

    No

    Массив строк

    Идентификатор сети подсети, в которой находится балансировщик нагрузки. Эта подсеть используется для выделения IP‑адресов для доступа к серверу back‑end. Если этот параметр не указан, по умолчанию будет использована подсеть, указанная в vip_subnet_cidr_id. Балансировщики нагрузки занимают различное количество IP‑адресов подсети в зависимости от их спецификаций. Не используйте CIDR‑блоки подсетей других ресурсов (например, кластеров или узлов) в качестве CIDR‑блока балансировщика нагрузки.

    Этот параметр доступен только для выделенных балансировщиков нагрузки.

    Пример:

    "elb_virsubnet_ids": [
    "14567f27-8ae4-42b8-ae47-9f847a4690dd"
    ]

    Как получить:

    Войдите в VPC console. В панели навигации выберите Subnets. Отфильтруйте целевую подсеть по имени VPC кластера, нажмите имя подсети и скопируйте Network ID на вкладке Summary.

    vip_address

    No

    String

    Приватный IP-адрес балансировщика нагрузки. Поддерживаются только IPv4-адреса.

    IP-адрес должен находиться в CIDR-блоке ELB. Если этот параметр не указан, IP-адрес будет автоматически назначен из CIDR-блока ELB.

    Этот параметр доступен только в кластерах v1.23.11-r0, v1.25.6-r0, v1.27.3-r0 или более поздних версиях.

    available_zone

    Yes

    Array of strings

    Зона доступности, в которой расположен балансировщик нагрузки.

    Этот параметр доступен только для выделенных балансировщиков нагрузки.

    l4_flavor_name

    No

    String

    Имя флейвора Layer 4 load balancer. Этот параметр обязателен, когда используется TCP или UDP.

    • Elastic: применяется к колеблющемуся трафику, оплата производится на основе общего трафика. Кластеры v1.21.10-r10, v1.23.8-r10, v1.25.3-r10 и более поздние версии поддерживают эластичные спецификации.
    • Fixed: применяется к стабильному трафику, оплата производится на основе спецификаций.

    Этот параметр доступен только для выделенных load balancer-ов.

    l7_flavor_name

    No

    String

    Имя флейвора Layer 7 load balancer. Этот параметр обязателен, когда используется HTTP.

    • Elastic: применяется к колеблющемуся трафику, оплата производится на основе общего трафика. Кластеры v1.21.10-r10, v1.23.8-r10, v1.25.3-r10 и более поздние версии поддерживают эластичные спецификации.
    • Fixed: применяется к стабильному трафику, оплата производится на основе спецификаций.

    Этот параметр доступен только для выделенных load balancer-ов. Его значение должно совпадать со значением l4_flavor_name, при этом оба должны быть либо эластичными флейворами, либо фиксированными флейворами.

  3. Создать ingress.

    kubectl create -f ingress-test.yaml

    Если отображается информация, аналогичная следующей, ingress был создан:

    ingress/ingress-test created

  4. Проверьте созданный ingress.

    kubectl get ingress

    Если отображается информация, аналогичная следующей, ingress был создан:

    NAME CLASS HOSTS ADDRESS PORTS AGE
    ingress-test cce * 121.**.**.** 80 10s

  5. Введите http://121.**.**.**:80 в поле адреса браузера, чтобы получить доступ к рабочей нагрузке (например, Nginx workload).

    121.**.**.** указывает IP-адрес унифицированного load balancer.

Привязка существующего Load Balancer к Ingress при создании Ingress

CCE позволяет подключаться к существующему load balancer при создании ingress.

  1. Используйте kubectl для доступа к кластеру. Подробнее см. Accessing a Cluster Using kubectl.
  2. Создайте YAML‑файл с именем ingress-test.yaml. При желании вы можете изменить имя файла.

    vi ingress-test.yaml
    Note
    • Начиная с кластера v1.23, версия ingress переключается с networking.k8s.io/v1beta1 на networking.k8s.io/v1. Подробнее о различиях между v1 и v1beta1 см. Ingress API Version Upgrade in CCE Clusters v1.23.
    • Существующий выделенный load balancer должен быть типа application (HTTP/HTTPS) и поддерживать частные сети (с частным IP‑адресом).

    Если версия кластера 1.23 или новее, конфигурация YAML‑файла выглядит следующим образом:

    apiVersion: networking.k8s.io/ v1
    kind: Ingress
    metadata:
    name: ingress-test
    annotations:
    kubernetes.io/elb.id: <your_elb_id> # Replace it with the ID of your existing load balancer.
    kubernetes.io/elb.ip: <your_elb_ip> # Replace it with the IP address of your existing load balancer.
    kubernetes.io/elb.class: performance # Load balancer type
    kubernetes.io/elb.port: '80'
    spec:
    rules:
    - host: ''
    http:
    paths:
    - path: '/'
    backend:
    service:
    name: <your_service_name> # Replace it with the name of your target Service.
    port:
    number: 8080 # Replace 8080 with the port number of your target Service.
    property:
    ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
    pathType: ImplementationSpecific
    ingressClassName: cce

    Если версия кластера 1.21 или более ранняя, конфигурация YAML‑файла выглядит следующим образом:

    apiVersion: networking.k8s.io/ v1beta1
    kind: Ingress
    metadata:
    name: ingress-test
    annotations:
    kubernetes.io/elb.id: <your_elb_id> # Replace it with the ID of your existing load balancer.
    kubernetes.io/elb.ip: <your_elb_ip> # Replace it with the IP address of your existing load balancer.
    kubernetes.io/elb.class: performance # Load balancer type
    kubernetes.io/elb.port: '80'
    kubernetes.io/ingress.class: cce
    spec:
    rules:
    - host: ''
    http:
    paths:
    - path: '/'
    backend:
    serviceName: <your_service_name> # Replace it with the name of your target Service.
    servicePort: 80
    property:
    ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
    Table 3 Ключевые параметры

    Параметр

    Обязательно

    Тип

    Описание

    kubernetes.io/elb.id

    Нет

    String

    Идентификатор балансировщика нагрузки. Значение может содержать от 1 до 100 символов.

    Используйте либо этот параметр, либо kubernetes.io/elb.ip. Если они конфликтуют, приоритет будет у kubernetes.io/elb.id. Этот параметр нельзя изменить после создания ingress.

    Как получить:

    В консоли управления нажмите Service List, выберите Networking > Elastic Load Balance. Нажмите имя целевого балансировщика нагрузки. На вкладке Summary найдите и скопируйте идентификатор.

    kubernetes.io/elb.ip

    Нет

    String

    IP-адрес балансировщика нагрузки.

    Используйте либо этот параметр, либо kubernetes.io/elb.id. Если они конфликтуют, приоритет будет у kubernetes.io/elb.id. Этот параметр нельзя изменить после создания ingress.

    При создании ingress указывайте публичный или частный IP-адрес для совместно используемого балансировщика нагрузки. Для выделенного балансировщика нагрузки можно указать только частный IP-адрес.

    kubernetes.io/elb.class

    Да

    String

    Load balancer type. Этот параметр нельзя изменить после создания ingress.

    • union: shared load balancer
    • performance: dedicated load balancer, which can be used only in clusters v1.17 and later.
    ПРИМЕЧАНИЕ:

    Если ingress LoadBalancer обращается к существующему выделенному load balancer, выделенный load balancer должен быть типа application load balancing (HTTP/HTTPS).

    kubernetes.io/elb.port

    Нет

    String

    Внешний порт, зарегистрированный с адресом ingress LoadBalancer.

    Значение находится в диапазоне от 1 до 65535. Значение по умолчанию — 80 для HTTP и 443 для HTTPS.

    ПРИМЕЧАНИЕ:
    • Некоторые порты на общем load balancer являются высоко рискованными и по умолчанию блокируются, например, порт 21.
    • Если вы выбираете существующий load balancer, порты слушателя разных кластеров нельзя переиспользовать. Несколько ingress в одном кластере могут использовать один и тот же порт слушателя, но рабочая конфигурация слушателя определяется самой ранней конфигурацией ingress.

  3. Создайте ingress.

    kubectl create -f ingress-test.yaml

    Если отображается информация, аналогичная следующей, ingress был создан:

    ingress/ingress-test created

  4. Проверьте созданный ingress.

    kubectl get ingress

    Если отображается информация, аналогичная следующей, ingress был создан:

    NAME CLASS HOSTS ADDRESS PORTS AGE
    ingress-test cce * 121.**.**.** 80 10s

  5. Введите http://121.**.**.**:80 в адресное поле браузера, чтобы получить доступ к рабочей нагрузке (например, Nginx workload).

    121.**.**.** указывает IP-адрес унифицированного балансировщика нагрузки.