1

在使用 GKE 时,我发现 Kubernetes 集群中的所有节点必须在同一个网络和同一个子网中。所以,我想了解设计网络的正确方法。

我有两个服务AB它们之间没有关系。我的计划是在单个区域中使用单个集群,并为每个服务AB同一网络的不同子网中的每个服务设置两个节点。

然而,这似乎是做不到的。分区集群的另一种方法是使用namespaces,但是我已经在使用使用命名空间的分区开发环境。

我阅读了有关集群联合的信息https://kubernetes.io/docs/concepts/cluster-administration/federation/,但是我的服务很小,我不需要它们在多个集群中同步。

为这些服务设置网络的正确方法是什么?A我是否应该为所有 4 个节点使用相同的网络和子网来提供这两项服务B

4

1 回答 1

1

您可以使用标签和网络策略限制传入(或传出)流量。

通过这种方式,仅当流量由属于同一应用程序的 Pod 或您想要实现的任何逻辑生成时,Pod 才能接收流量。

您可以按照分步教程指导您彻底实施 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
于 2018-10-01T13:24:28.997 回答