Provide a mechanism to enforce network security across clusters where membership is defined through the use of labels.
- Gloo Platform Control Plane Cluster, Gloo Agent Cluster A,B
- Istio Deployment on Cluster A,B
- Shared Trust (Root Trust Policy)
- Management Cluster
- Workspaces & Workspace Settings << Allow for network segmentation
- Namespaces << Store Mesh-Wide Config
- Gateway Lifecycle Manager << Install East West Gateways
- Virtual Destinations << Create Virtual Services for Cross Cluster Traffic
- Workload Clusters
- HTTPBIN Application << Application Deployments/Services/Namespaces
- Gateway Namespaces and Services << Provide Namespaces with Labels for workspace inclusion
- Cluster B
- Network Policy << Example for Red Workspace
Network Policy and East West Gateway Deployments can work in conjuction to secure the network even when spread across separate clusters. In this example a namespace is added to a workspace via a label:
- workspace=red
- workspace=blue
- workspace=green
This implies that namespaces of different names can be joined together into a single workspace.
In each workspace a corresponding EastWest gateway is deployed. This allows a destination cluster (Cluster B
) to apply network policy using the same labels as the workspace to control traffic that goes from one cluster to another.
In the diagram you can see each cluster and the three workspaces.
The information presented in the diagram is explained by the following table:
Traffic Endpoints | Discovery Resource | Enforcement Resource | Notes |
---|---|---|---|
Green Namespace / Cluster A -> Red Namespace / Cluster A | Kubernetes - Visible | Network Policy - Namespace Selector | DNS will resolve, but traffic will be dropped |
Blue Namespace / Cluster A -> Red Namespace / Cluster A | Kubernetes - Visible | Network Policy - Namespace Selector | DNS will resolve, but traffic will be dropped |
Red Namespace / Cluster A -> Red Namespace / Cluster B | Istio - Visible | Network Policy - IP Block | DNS will resolve, traffic will be forwarded |
Blue Namespace / Cluster A -> Red Namespace / Cluster B | Istio - Invisible | Network Policy - IP Block | DNS will not resolve, traffic will be dropped (if on separate node) |
Green Namespace / Cluster A -> Red Namespace / Cluster B | Istio - Invisible | Network Policy - IP Block | DNS will not resolve, traffic will be dropped (if on separate node) |
Istio Namespace / Cluster A -> Any Namespace / Cluster A | Kubernetes - Visible | Network Policy - Namespace Selector | DNS will resolve, traffic will be forwarded |
The responsibilities of Istio are to provide DNS resolution and add additional layer 7 authorization as well as mTLS. The responsibilities of Kubernetes and Network Policy are to establish IP network boundaries using namespaces and labels.
In addition to what is provided here, an egress gateway could also be installed on the source cluster (Cluster A
) to allow for a predefined IP to associate with the source cluster when defining IP Blocks in Network Policy.