GitHub - kubernetes-sigs/kubefed: Kubernetes Cluster Federation
source link: https://github.com/kubernetes-sigs/kubefed
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
Kubernetes Cluster Federation
Kubernetes Cluster Federation (KubeFed for short) allows you to coordinate the configuration of multiple Kubernetes clusters from a single set of APIs in a hosting cluster. KubeFed aims to provide mechanisms for expressing which clusters should have their configuration managed and what that configuration should be. The mechanisms that KubeFed provides are intentionally low-level, and intended to be foundational for more complex multicluster use cases such as deploying multi-geo applications and disaster recovery.
KubeFed is currently alpha and moving rapidly toward its initial beta release.
Concepts
KubeFed is configured with two types of information:
- Type configuration declares which API types KubeFed should handle
- Cluster configuration declares which clusters KubeFed should target
Propagation refers to the mechanism that distributes resources to federated clusters.
Type configuration has three fundamental concepts:
- Templates define the representation of a resource common across clusters
- Placement defines which clusters the resource is intended to appear in
- Overrides define per-cluster field-level variation to apply to the template
These three abstractions provide a concise representation of a resource intended to appear in multiple clusters. They encode the minimum information required for propagation and are well-suited to serve as the glue between any given propagation mechanism and higher-order behaviors like policy-based placement and dynamic scheduling.
These fundamental concepts provide building blocks that can be used by higher-level APIs:
- Status collects the status of resources distributed by KubeFed across all federated clusters
- Policy determines which subset of clusters a resource is allowed to be distributed to
- Scheduling refers to a decision-making capability that can decide how workloads should be spread across different clusters similar to how a human operator would
Features
Feature
Maturity
Feature Gate
Default
Push propagation of arbitrary types to remote clusters
Alpha
PushReconciler
true
CLI utility (kubefedctl
)
Alpha
Generate KubeFed APIs without writing code Alpha
Multicluster Service DNS via external-dns
Alpha
CrossClusterServiceDiscovery
true
Multicluster Ingress DNS via external-dns
Alpha
FederatedIngress
true
Replica Scheduling Preferences
Alpha
SchedulerPreferences
true
Guides
User Guide
Take a look at our user guide if you are interested in using KubeFed.
Development Guide
Take a look at our development guide if you are interested in contributing.
Community
Refer to the contributing guidelines if you would like to contribute to KubeFed.
Communication channels
KubeFed is sponsored by SIG Multicluster and it uses the same communication channels as SIG multicluster.
- Slack channel: #sig-multicluster
- Mailing list
Code of Conduct
Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK