Диапазон распределения сети Kubernetes - PullRequest
2 голосов
/ 10 февраля 2020

Есть ли способ в Kubernetes или есть сетевой плагин, на котором мы можем ограничить диапазон распределения IP. Например, я пытаюсь использовать weave и использовать su bnet 192.168.16.0/24. Я хочу ограничить распределение IP-адресов через Kubernetes для стручков диапазоном 192.168.16.10 - 30.

Однако мое приложение может использовать остальные IP-адреса в зависимости от требований, т.е. мое приложение может запустить виртуальный IP из 192.168.16.31 - 50, но я хочу, чтобы какой-то механизм гарантировал, что указанный мной диапазон IP не будет выделен K8s, и мое приложение может его использовать.

Мне нужно что-то вроде этого: https://www.weave.works/docs/net/latest/tasks/ipam/configuring-weave/.

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

Сетевая политика ресурс поможет

См. Документация

Пример NetworkPolicy может выглядеть следующим образом:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:
    matchLabels:
      role: db
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - ipBlock:
        cidr: 172.17.0.0/16
        except:
        - 172.17.1.0/24
    - namespaceSelector:
        matchLabels:
          project: myproject
    - podSelector:
        matchLabels:
          role: frontend
    ports:
    - protocol: TCP
      port: 6379
  egress:
  - to:
    - ipBlock:
        cidr: 10.0.0.0/24
    ports:
    - protocol: TCP
      port: 5978

Правило ipBlock описывает диапазоны сети для правил ingress и egress. Например:

    - ipBlock:
        cidr: 172.17.0.0/16
        except:
        - 172.17.1.0/24

CIDR

CIDR означает Бесклассовая междоменная маршрутизация , см. выборки блоков CIDR IPv4

Подробнее

0 голосов
/ 10 февраля 2020

На самом деле это хороший вопрос. Это зависит от вашего CNI, в вашем случае при использовании weav enet.

Я предполагаю, что вы используете daemonset для своего Weav enet. Если это так, добавьте что-то подобное в ваш daemonset файл yaml.

        spec:
          containers:
            - name: weave
              command:
                - /home/weave/launch.sh
              env:
                - name: IPALLOC_RANGE
                  value: 192.168.16.32/27

Это дает вашим модулям диапазон IP-адресов от 192.168.16.32-63.

Вы также можете установить это с помощью Переплетите CLI, дайте мне знать, если вам это нужно.

Надеюсь, это полезно.

...