Внесите IP-адрес в белый список для доступа к развертыванию с помощью Kubernetes ingress Istio.

Я пытаюсь внести IP-адрес в белый список для доступа к развертыванию внутри моего кластера Kubernetes.

Я искал документацию в Интернете по этому поводу, но я нашел только

ingress.kubernetes.io/whitelist-source-range

для входа, чтобы предоставить доступ к определенному диапазону IP-адресов. Но тем не менее, мне не удалось изолировать развертывание.

Вот YAML-файл входной конфигурации:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-internal
  annotations:
    kubernetes.io/ingress.class: "istio"
    ingress.kubernetes.io/whitelist-source-range: "xxx.xx.xx.0/24, xx.xxx.xx.0/24"
spec:
  rules:
  - host: white.example.com
    http:
      paths:
      - backend:
          serviceName: white
          servicePort: 80

Я могу получить доступ к развертыванию со своего IP-адреса из белого списка и с мобильного телефона (другой IP-адрес, не указанный в белом списке в конфигурации)

Кто-нибудь столкнулся с той же проблемой, используя ingress и Istio?

Любая помощь, подсказка, документы или альтернативная конфигурация будут высоко оценены.


person Lan    schedule 20.09.2017    source источник
comment
Привет, @Lan, просто интересно, ты уже получил ответ?   -  person Agung Pratama    schedule 22.11.2018


Ответы (2)


Ознакомьтесь с обзором аннотаций, кажется, что whitelist-source-range не поддерживается istio:

whitelist-source-range: разделенный запятыми список IP-адресов, к которым разрешен доступ.

nginx, haproxy, трафиксервер

person user3151902    schedule 23.09.2017

Мне удалось решить проблему внесения IP-адресов в белый список для моей службы на основе istio (приложение, использующее прокси-сервер istio и доступное через входной шлюз istio через общедоступный LB), используя NetworkPolicy.

Для моего случая вот топология:

Общедоступный балансировщик нагрузки (в GKE с использованием сохранить режим clientIP) ==> Выделенные модули контроллера шлюза Istio (см. мой ответ здесь) ==> Мои модули (контейнер istio-proxy sidecar , мой основной контейнер).

Итак, я настроил 2 сетевые политики:

  1. NetworkPolicy, которая защищает входящее соединение от интернет-соединения до модулей Istio Ingress Gateway Controller. В моей конфигурации сетевой политики мне просто нужно установить в поле spec.podSelector.matchLabels метку модуля Dedicated Istio Ingress Gateway Controller Pods.

  2. Еще одна сетевая политика, которая ограничивает входящие подключения к моему развертыванию -> только от модулей/развертываний Istio Ingress Gateway Controller.

person Agung Pratama    schedule 30.10.2018