Exploration on MCS API #4945
Replies: 2 comments 6 replies
-
Thanks for the write up! So one thing I'm wondering about is the maturity/availability of various mcs-controllers. My understanding is that the MCS SIG doesn't provide one: each Kubernetes service provider has to provide one themselves; is that correct? If so, are we pigeonholing ourselves by putting our chips behind the MCS API since we'd only be offering multicluster to a subset of possible users? |
Beta Was this translation helpful? Give feedback.
-
A blocking issue found while setting up multicluster env using AKS and Submariner. I have created 1 broker cluster and 2 worker clusters and tried to connect workers to broker. Installing the broker with
Worker clusters are stuck in I suppose that Submariner should update the config of coredns, but the coredns configmap is not updated with more entries. I noticed the change of
Crashing components:
|
Beta Was this translation helpful? Give feedback.
-
MultiClusterService (MCS) API is a project in Kubernetes sig-multicluster. It defines a set of Kubernetes CRDs describe the policies in a multicluster environment.
This doc briefly summarizes the mechanism of MCS API and it's potential relationship with OSM. Here we focus on non-headless services. For headless services, the scenarios are discussed in detail in the original KEP doc.
New CRD
There are two new CRDs introduced:
ServiceExport
(SE): in a cluster, SE declares which service are exposed to remote clustersServiceImport
(SI): in a cluster, SI declares which service it has access to on remote clustersMain components and Terminologies
MultiClusterService
A MCS is a service that shared within the whole clusterset. It is required that it has the same name and namespace on different clusters. Its FQDN should be
<svc>.<ns>.svc.clusterset.local
by default.Typical Use Cases
1. Exporting a Service
This operation exposes a local cluster service to the remote clusters.
2. Importing a Service
This operation is a consuming cluster asks the access to services on the remote clusters.
EndpointSlice
resources.Considerations
OSM with MCS API
Among the discussions in sig-multicluster, MCS API and KubeFed are two projects standing out. In a recent interview with Jeremy Olmsted-Thompson, a co-chair of sig-multicluster, he mentioned that the user group of KubeFed is getting smaller. MCS API is the more active one between the two.
OSM does not need to implement the MCS API itself, as it is a Kubernetes orchestration feature rather than a service mesh feature. But when OSM works towards a multicluster mesh, it will be based on an existing multicluster Kubernetes environment. In the near future, MCS API is likely to be the winner. Therefore, OSM should consider developing the multicluster mesh features on top of MCS API.
Some existing MCS API implementations can be used to set up the development environment:
These two projects both use CRDs from the
multicluster.x-k8s.io
group, which is the experimental version of the MCS API.References
Beta Was this translation helpful? Give feedback.
All reactions