Skip to content

Commit 7284f55

Browse files
committed
add section on supported service types
1 parent d515b88 commit 7284f55

File tree

1 file changed

+28
-0
lines changed
  • keps/sig-multicluster/1645-multi-cluster-services-api

1 file changed

+28
-0
lines changed

keps/sig-multicluster/1645-multi-cluster-services-api/README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ tags, and then generate with `hack/update-toc.sh`.
9898
- [DNS](#dns)
9999
- [EndpointSlice](#endpointslice)
100100
- [Endpoint TTL](#endpoint-ttl)
101+
- [Service Types](#service-types)
101102
- [Consumption of EndpointSlice](#consumption-of-endpointslice)
102103
- [Constraints and Conflict Resolution](#constraints-and-conflict-resolution)
103104
- [Global Properties](#global-properties)
@@ -504,6 +505,33 @@ controller, that may run inside each cluster, is responsible for watching each
504505
lease and removing all remaining `EndpointSlices` associated with a cluster when
505506
that cluster’s lease expires.
506507
508+
#### Service Types
509+
510+
- `ClusterIP`: This is the the straightforward case most of the proposal
511+
assumes. Each `EndpointSlice` associated with the exported service is combined
512+
with slices from other clusters to make up the supercluster service. They will
513+
be imported to the cluster behind the supercluster IP.
514+
515+
```
516+
<<[UNRESOLVED re:stateful sets]>>
517+
Today's headless services likely don't want a VIP and may not function
518+
properly behind one. It probably doesn't make sense to export a current
519+
headless service to the supercluster, it would work, but likely not the way
520+
you want.
521+
<<[/UNRESOLVED]>>
522+
```
523+
- `NodePort` and `LoadBalancer`: These create `ClusterIP` services that would
524+
sync as expected. For example If you export a `NodePort` service, the
525+
resulting cross-cluster service will still be a supercluster IP type. You
526+
could use node ports to access the cluster-local service in the source
527+
cluster, but not in any other cluster, and it would only route to local
528+
endpoints.
529+
- `ExternalName`: It doesn't make sense to export an `ExternalName` service.
530+
They can't be merged with other exports, and it seems like it would only
531+
complicate deployments by even attempting to stretch them across clusters.
532+
Instead, regular `ExternalName` type `Services` should be created in each
533+
cluster individually.
534+
507535
### Consumption of EndpointSlice
508536
509537
To consume a supercluster service, users will use the domain name associated

0 commit comments

Comments
 (0)