Isolation on IBM Cloud Private

IBM Cloud Private offers multi-tenancy support through user, compute, and network isolation within a cluster. Dedicated physical and logical resources are required for the cluster to achieve workload isolation. Multi-tenancy requires applying various isolation techniques that are described in this topic.

User, compute, and network isolation is enforced by confining workload deployments to virtual and physical resources. The enforced isolation also allows the cluster administrator to control the footprint that is allocated to various teams based on their requirements. The following are some key prerequisites to achieve isolation of deployments on cluster nodes.

Plan deployment model for isolation

There are several levels of multi-tenancy. The cluster administrator must analyze workload requirements to determine which levels are required. The following isolation features can be used to satisfy these requirements:

Scenarios

The following section covers various use case scenarios and has more details on configuration to achieve the isolation in each scenario.

Scenario 1: Isolated teams and namespaces across users and user groups

You want to use a single IBM Cloud Private cluster for multiple application project teams with complete isolation. There might be an Operations team that manages a single cluster with high availability configured. Members of the Operations team define individual namespaces for separate project teams. They assign the administrator role to one or more persons per project team, who in turn, define the team members and roles for that namespace. Members of the Operations team who have the role of the cluster administrator, are responsible for setting up shared storage, and monitoring all namespaces.

User roles and namespace isolation

Scenario 2: Isolated teams and namespaces and dedicated nodes to namespaces

There are multiple teams in your organization with dedicated namespaces for each team. The application and workload deployments of any team should happen only within the namespace assigned to the team. Each team has a planned group of nodes, which are physical servers or virtual machines, that are added to the cluster. This cluster can have many other nodes from various teams that are configured and managed as part of the same IBM Cloud Private cluster. All the deployments that are made by a specific team should be hosted only on the group of nodes that the team has been assigned to.

Isolated workloads to nodes

Scenario 3: Isolated teams and namespaces, dedicated nodes to namespaces, and dedicated VLAN networks and ingress controlled namespaces

Workloads run on a shared network infrastructure with a cluster where multiple teams of the organization have workloads on their dedicated isolated namespaces. The network traffic to the applications on the namespace of a cluster shouldn’t have any interference with network traffic on other namespaces and all the traffic should be confined within the deployment's namespace. Also, the nodes can be grouped and assigned with a dedicated VLAN subnet range.

Workloads with controlled network isolation Diagram of external traffic for workloads with controlled network isolation

Scenario 4: Isolated teams and namespaces, dedicated nodes to namespaces, dedicated VLAN networks, ingress controlled namespaces, and persistence volume claims and persistence volumes

You want to share the storage class server, such as NFS and GlusterFS across the multi-tenant namespaces. You create persistence volumes based on the storage class. To isolate the storage environment to dedicated namespaces, persistence volume with labels must be created. When the pods are deployed in an isolated namespace, the persistence volume claims can be configured to bind to specific persistence volume by using selectors.

Workloads with controlled network isolation External traffic for  controlled network isolation

Scenario 5: Isolated teams and namespaces, dedicated nodes to namespaces, isolated networks, and pod isolation

This scenario builds on Scenario 2, providing both user, network, and compute isolation that includes increasing stability, performance and security for container images. Container images, running in pods, are isolated to select node groups by using namespaces. Therefore, application namespaces must be subdivided into extra namespaces. Proxy ingress isolation can’t be used for network segregation when you use pod isolation since multiple namespaces are used. Use VLANs or network policies to segregate the worker node networks from one another.

Pod and network isolation by using VLANs

Network VLANs at the infrastructure level can be used to isolate traffic in one application from another and as host groups. To implement pod and network isolation by using VLANs, separate namespaces into two or more pod privilege categories that range from the most unprivileged to the most privileged.

Pod and network isolation with VLANs External traffic for pod and network isolation with VLANs

Pod and network isolation by using network policies

Kubernetes network policies can be used to traffic between namespaces or pods using labels. To implement pod and network isolation by using network policies, separate namespaces into two or more pod privilege categories that range from the most unprivileged to the most privileged and use a common namespace label to allow ingress and egress traffic between namespaces in the same application.

Pod and network isolation with network isolation External traffic for pod and network isolation with network policies

Scenario 6: Multiple LDAP configured to a single cluster

There are multiple LDAP servers, such as Open LDAP and Active Directory, that are set up for various departments in an organization. The members of each department are isolated to their own group of users, forming a team. Each team has dedicated namespaces thereby achieving isolated namespace environments for the various departments accessing the same IBM Cloud Private cluster.

Multiple LDAP supported clusters

Isolation techniques on an IBM Cloud Private cluster environment are more detailed in the following sections: