Понимание подсетей в кластере Kubernetes - PullRequest
0 голосов
/ 01 октября 2018

При использовании GKE я обнаружил, что все узлы в кластере Kubernetes должны находиться в одной сети и в одной подсети.Итак, я хотел понять, как правильно проектировать сети.

У меня есть две службы A и B, и они не имеют никакого отношения между ними.Мой план состоял в том, чтобы использовать один кластер в одном регионе и иметь два узла для каждого из сервисов A и B в разных подсетях в одной сети.

Однако кажется, что это может 'это будет сделано.Другой способ разбиения кластера - это использование namespaces, однако я уже использую среду разработки разбиения на разделы с использованием пространств имен.

Я читал о федерации кластера https://kubernetes.io/docs/concepts/cluster-administration/federation/,, однако мои службы малы, и я неони не нужны в нескольких кластерах и в синхронизации.

Как правильно настроить сетевую работу для этих служб?Должен ли я просто использовать одну и ту же сеть и подсеть для всех 4 узлов для обслуживания двух служб A и B?

1 Ответ

0 голосов
/ 01 октября 2018

Вы можете ограничить входящий (или исходящий) трафик, используя метки и сетевые политики.

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

Вы можете выполнить это пошаговое руководство, которое поможет вам в полной мере реализовать POC.

kubectl run hello-web --labels app=hello \
  --image=gcr.io/google-samples/hello-app:1.0 --port 8080 --expose

Пример сетевой политики

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: hello-allow-from-foo
spec:
  policyTypes:
  - Ingress
  podSelector:
    matchLabels:
      app: hello
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: foo
...