问题
Not sure if this is the right place, please point me to a different forum if not.
In a multi-cluster kubernetes setup, is cross-cluster communication a valid design? In particular, a pod in one cluster relying on a pod in another cluster.
Or are there limitations or anti-patterns associated with this that we should avoid? If not, what tools do you use to manage this deployment and monitor load on each cluster?
回答1:
Multicluster deployments give you a greater degree of isolation and availability but increase complexity. If your systems have high availability requirements, you likely need clusters across multiple zones and regions. You can canary configuration changes or new binary releases in a single cluster, where the configuration changes only affect a small amount of user traffic. Additionally, if a cluster has a problem, you can temporarily route traffic to nearby clusters until you address the issue.
Multiple meshes afford the following capabilities beyond that of a single mesh:
- Organizational boundaries: lines of business
- Service name or namespace reuse: multiple distinct uses of the default namespace
- Stronger isolation: isolating test workloads from production workloads
I have found a very good youtube videos from KubeCon, check it out because it really explains how multi-cluster works, specially the first one with Matt Turner.
- https://www.youtube.com/watch?v=FiMSr-fOFKU
- https://www.youtube.com/watch?v=-zsThiLvYos
Check out Admiral which provides automatic configuration and service discovery for multicluster Istio service mesh
Istio has a very robust set of multi-cluster capabilities. Managing this configuration across multiple clusters at scale is challenging. Admiral takes an opinionated view on this configuration and provides automatic provisioning and syncing across clusters. This removes the complexity from developers and mesh operators pushing this complexity into automation.
In a multi-cluster kubernetes setup, is cross-cluster communication a valid design? In particular, a pod in one cluster relying on a pod in another cluster.
Based on provided links and my knowledge everything should work fine, pod can rely on a pod in another cluster.
More useful links:
- https://istio.io/docs/ops/deployment/deployment-models/#multiple-clusters
- https://banzaicloud.com/blog/istio-multicluster-federation-2/
- https://github.com/istio-ecosystem/coddiwomple
- https://github.com/istio-ecosystem/multi-mesh-examples
EDIT
how do the different frameworks of Kubefed and Admiral fit with each other? Can we use both or only use one?
I would not use kubefed since it's in alpha as far as i know, unless you really need it. I dont know how both of them would work together, I can only assume that they should both work.
what considerations should we have in deciding between different mesh architecture to facilitate cross-cluster communication?
Above, there is a link to youtube video, istio Multi-Cluster Service Mesh Patterns Explained, I would say it's up to you to decide which one you want to use based on your needs, the simplest one is the first described in the video, single control plane, single network. More about it there.
来源:https://stackoverflow.com/questions/60121416/multi-cluster-kubernetes-cross-cluster-communication