Skip to content

Commit 459b872

Browse files
committed
OSSMDOC-217: Initial Service Mesh deployment model documentation.
1 parent 7b46ab4 commit 459b872

File tree

6 files changed

+61
-0
lines changed

6 files changed

+61
-0
lines changed

_topic_map.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2644,6 +2644,8 @@ Topics:
26442644
File: ossm-support
26452645
- Name: Service Mesh architecture
26462646
File: ossm-architecture
2647+
- Name: Service mesh deployment models
2648+
File: ossm-deployment-models
26472649
- Name: Service Mesh and Istio differences
26482650
File: ossm-vs-community
26492651
- Name: Preparing to install Service Mesh
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Module included in the following assemblies:
2+
// * service_mesh/v2x/ossm-deploy-mod-v2x.adoc
3+
4+
5+
[id="ossm-deploy-multi-mesh_{context}"]
6+
= Multimesh or federated deployment model
7+
8+
_Federation_ is a deployment model that lets you share services and workloads between separate meshes managed in distinct administrative domains.
9+
10+
The Istio multi-cluster model requires a high level of trust between meshes and remote access to all Kubernetes API servers on which the individual meshes reside. {ProductName} federation takes an opinionated approach to a multi-cluster implementation of Service Mesh that assumes _minimal_ trust between meshes.
11+
12+
A _federated mesh_ is a group of meshes behaving as a single mesh. The services in each mesh can be unique services, for example a mesh adding services by importing them from another mesh, can provide additional workloads for the same services across the meshes, providing high availability, or a combination of both. All meshes that are joined into a federated mesh remain managed individually, and you must explicitly configure which services are exported to and imported from other meshes in the federation. Support functions such as certificate generation, metrics and trace collection remain local in their respective meshes.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Module included in the following assemblies:
2+
// * service_mesh/v2x/ossm-deploy-mod-v2x.adoc
3+
4+
[id="ossm-deploy-multitenant_{context}"]
5+
= Multitenant deployment model
6+
7+
{ProductName} installs a `ServiceMeshControlPlane` that is configured for multitenancy by default. {ProductName} uses a multitenant Operator to manage the control plane lifecycle. Within a mesh, namespaces are used for tenancy.
8+
9+
{ProductName} uses `ServiceMeshControlPlane` resources to manage mesh installations, whose scope is limited by default to namespace that contains the resource. You use `ServiceMeshMemberRoll` and `ServiceMeshMember` resources to include additional namespaces into the mesh. A namespace can only be included in a single mesh, and multiple meshes can be installed in a single OpenShift cluster.
10+
11+
Typical service mesh deployments use a single control plane to configure communication between services in the mesh. {ProductName} supports “soft multitenancy”, where there is one control plane and one mesh per tenant, and there can be multiple independent control planes within the cluster. Multitenant deployments specify the projects that can access the {ProductShortName} and isolate the {ProductShortName} from other control plane instances.
12+
13+
The cluster administrator gets control and visibility across all the Istio control planes, while the tenant administrator only gets control over their specific {ProductShortName}, Kiali, and Jaeger instances.
14+
15+
You can grant a team permission to deploy its workloads only to a given namespace or set of namespaces. If granted the `mesh-user` role by the service mesh administrator, users can create a `ServiceMeshMember` resource to add namespaces to the `ServiceMeshMemberRoll`.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// Module included in the following assemblies:
2+
// * service_mesh/v2x/ossm-deploy-mod-v2x.adoc
3+
4+
[id="ossm-deploy-single-mesh_{context}"]
5+
= Single mesh deployment model
6+
7+
The simplest Istio deployment model is a single mesh.
8+
9+
Service names within a mesh must be unique because Kubernetes only allows one service to be named `myservice` in the `mynamespace` namespace. However, workload instances can share a common identity since service account names can be shared across workloads in the same namespace
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// Module included in the following assemblies:
2+
// * service_mesh/v2x/ossm-deploy-mod-v2x.adoc
3+
4+
[id="ossm-deploy-single-tenant_{context}"]
5+
= Single tenancy deployment model
6+
7+
In Istio, a tenant is a group of users that share common access and privileges for a set of deployed workloads. You can use tenants to provide a level of isolation between different teams. You can segregate access to different tenants using `NetworkPolicies`, `AuthorizationPolicies`, and `exportTo` annotations on istio.io or service resources.
8+
9+
Single tenant, cluster-wide control plane configurations are deprecated as of {ProductName} version 1.0. {ProductName} defaults to a multitenant model.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
[id="ossm-deployment-models"]
2+
= Service mesh deployment models
3+
include::modules/ossm-document-attributes.adoc[]
4+
:context: ossm-deployment-models
5+
6+
{ProductName} supports several different deployment models that can be combined in different ways to best suit your business requirements.
7+
8+
include::modules/ossm-deploy-single-mesh.adoc[leveloffset=+1]
9+
10+
include::modules/ossm-deploy-single-tenant.adoc[leveloffset=+1]
11+
12+
include::modules/ossm-deploy-multitenant.adoc[leveloffset=+1]
13+
14+
include::modules/ossm-deploy-multi-mesh.adoc[leveloffset=+1]

0 commit comments

Comments
 (0)