All Projects → kubernetes-sigs → Kubefed

kubernetes-sigs / Kubefed

Licence: apache-2.0
Kubernetes Cluster Federation

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to Kubefed

Docat
Host your docs. Simple. Versioned. Fancy.
Stars: ✭ 115 (-94.12%)
Mutual labels:  hacktoberfest
Cyclejs
A functional and reactive JavaScript framework for predictable code
Stars: ✭ 9,996 (+411.3%)
Mutual labels:  hacktoberfest
Quinn
Async-friendly QUIC implementation in Rust
Stars: ✭ 1,859 (-4.91%)
Mutual labels:  hacktoberfest
Singapore Tech Internships
🏢 (Updated Dec 2020) Singapore Tech Internships!
Stars: ✭ 116 (-94.07%)
Mutual labels:  hacktoberfest
Python Gitlab
Python wrapper for the GitLab API
Stars: ✭ 1,679 (-14.12%)
Mutual labels:  hacktoberfest
Beets
music library manager and MusicBrainz tagger
Stars: ✭ 10,522 (+438.21%)
Mutual labels:  hacktoberfest
Covid19 Notifier In
A sample Android App which notifies about COVID19 cases in 🇮🇳India after every 1 hour.
Stars: ✭ 116 (-94.07%)
Mutual labels:  hacktoberfest
Zoid
Cross domain components
Stars: ✭ 1,672 (-14.48%)
Mutual labels:  hacktoberfest
Dbatools
🚀 SQL Server automation and instance migrations have never been safer, faster or freer
Stars: ✭ 1,742 (-10.9%)
Mutual labels:  hacktoberfest
Perfil Politico
A platform for profiling public figures in Brazilian politics
Stars: ✭ 117 (-94.02%)
Mutual labels:  hacktoberfest
Mongoframework
An "Entity Framework"-like interface for MongoDB
Stars: ✭ 116 (-94.07%)
Mutual labels:  hacktoberfest
Made In Romania
🇷🇴 A list of cool projects made in Romania.
Stars: ✭ 116 (-94.07%)
Mutual labels:  hacktoberfest
Skeletonview
☠️ An elegant way to show users that something is happening and also prepare them to which contents they are awaiting
Stars: ✭ 10,804 (+452.63%)
Mutual labels:  hacktoberfest
Lens Regex Pcre
Text lenses using PCRE regexes
Stars: ✭ 116 (-94.07%)
Mutual labels:  hacktoberfest
Sentry Php
The official PHP SDK for Sentry (sentry.io)
Stars: ✭ 1,591 (-18.62%)
Mutual labels:  hacktoberfest
Maria Quiteria
Backend para coleta e disponibilização dos dados 📜
Stars: ✭ 115 (-94.12%)
Mutual labels:  hacktoberfest
Reactstrap
Simple React Bootstrap 5 components
Stars: ✭ 10,207 (+422.1%)
Mutual labels:  hacktoberfest
Cxbx Reloaded
Xbox (Original) Emulator
Stars: ✭ 1,746 (-10.69%)
Mutual labels:  hacktoberfest
Duckstation
Fast PlayStation 1 emulator for x86-64/AArch32/AArch64
Stars: ✭ 2,888 (+47.72%)
Mutual labels:  hacktoberfest
Fhir
The IBM® FHIR® Server and related projects
Stars: ✭ 117 (-94.02%)
Mutual labels:  hacktoberfest

Github Actions Go Report Card Image Repository on Quay LICENSE Releases

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 beta.

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
Replica Scheduling Preferences Alpha SchedulerPreferences true

Guides

Quickstart

  1. Clone this repo:
    git clone https://github.com/kubernetes-sigs/kubefed.git
    
  2. Start a kind cluster:
    kind create cluster
    
  3. Deploy kubefed:
    make deploy.kind
    

You now have a Kubernetes cluster with kubefed up and running. The cluster has been joined to itself and you can test federation of resources like this:

  1. Verify the KubeFedCluster exists and is ready:
    kubectl -n kube-federation-system get kubefedcluster
    
    If you're on macOS the cluster will not immediately show as ready. You need to change the API endpoint's URL first:
    ./scripts/fix-joined-kind-clusters.sh
    
  2. Create a namespace to be federated:
    kubectl create ns federate-me
    
  3. Tell kubefed to federate that namespace (and the resources in it):
    ./bin/kubefedctl federate ns federate-me
    
  4. Create a ConfigMap to be federated:
    kubectl -n federate-me create cm my-cm
    
  5. Tell kubefed to federate that ConfigMap:
    ./bin/kubefedctl -n federate-me federate configmap my-cm
    
  6. Verify the FederatedConfigMap has been created and propagates properly:
    kubectl -n federate-me describe federatedconfigmap my-cm
    

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.

Code of Conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].