Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(MeshService): add migration notes #1899

Merged
merged 2 commits into from
Sep 23, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions app/_src/networking/meshservice.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,3 +98,47 @@ name of the `Dataplane` port.
targetPort: 6739
appProtocol: tcp
```

## Migration

MeshService is opt-in and involves a migration process. Every `Mesh` must enable
michaelbeaumont marked this conversation as resolved.
Show resolved Hide resolved
`MeshServices` in some form:

```
spec:
meshServices:
enabled: Disabled # or Everywhere, ReachableBackends, Exclusive
```

Remember that the biggest change with `MeshService` is that traffic is no longer
load-balancing between all zones. Traffic sent to a `MeshService` is only ever
sent to a single zone.

You may be using `kuma.io/service` to split traffic across zones. Part of
migrating is deciding for every `kuma.io/service`, whether traffic should be
limited to one zone, so using a `MeshService`, or load-balancing, which
means using `MeshMultiZoneService`.

After enabling `MeshServices`, the control plane generates additional resources.
There are a few ways to manage this.

### `Everywhere`

This enables `MeshService` resource generation everywhere. This means twice as
many Envoy Clusters and ClusterLoadAssignments. That in turn means potentially
michaelbeaumont marked this conversation as resolved.
Show resolved Hide resolved
hitting the resource limits of the control plane, before reachable backends
would otherwise be necessary. Therefore, consider trying `ReachableBackends` as
described below.

### `ReachableBackends`

This enables automatic generation of the Kuma `MeshServices` resource but
does not include the corresponding resources for every data plane proxy.
The intention is for users to explicitly and gradually introduce
relevant `MeshServices` via `reachableBackends`.

### `Exclusive`

This is the end goal of the migration. Destinations in the mesh are managed
solely with `MeshService` resources and no longer via `kuma.io/service` tags and
`Dataplane` inbounds.
Loading