https://github.com/kcp-dev/contrib-tmc
An experimental add-on readding some Kubernetes compute APIs and impement transparent multi-cluster scheduling
https://github.com/kcp-dev/contrib-tmc
Last synced: 2 months ago
JSON representation
An experimental add-on readding some Kubernetes compute APIs and impement transparent multi-cluster scheduling
- Host: GitHub
- URL: https://github.com/kcp-dev/contrib-tmc
- Owner: kcp-dev
- License: apache-2.0
- Created: 2023-06-22T12:48:58.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-09-12T12:07:49.000Z (almost 2 years ago)
- Last Synced: 2025-04-05T18:52:02.356Z (3 months ago)
- Language: Go
- Size: 40.1 MB
- Stars: 6
- Watchers: 15
- Forks: 3
- Open Issues: 128
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TMC - Transparent Multi-Cluster
Experimental multi-cluster workload management platform for Kubernetes, built on top of [KCP](https://github.com/kcp-dev/kcp)
## What is TMC?
TMC is a multi-cluster management platform that allows you to manage multiple Kubernetes clusters from a single control plane. TMC should be a plugin of KCP and extend its functionality to support multi-cluster workload management.
## Quick start
```
# Build CLI binariesmake build
# Copy binaries to PATH
# Either copy the binaries to a directory in your PATH
cp bin/{kubectl-tmc,kubectl-workloads} /usr/local/bin/kubectl-tmc# Or add the bin directory to your PATH
export PATH=$PATH:$(pwd)/bin# Start TMC-KCP
go run ./cmd/tmc start
# Create TMC workspace
kubectl tmc workspace create tmc-ws --type tmc --enter
# Create SyncTarget for remote cluster
kubectl tmc workload sync cluster-1 --syncer-image ghcr.io/kcp-dev/contrib-tmc/syncer:latest --output-file cluster-1.yaml
# Login into child cluster
KUBECONFIG= kubectl apply -f "cluster-1.yaml"
# Bind compute resources
kubectl tmc bind compute root:tmc-ws
# Create a workload on TMC-KCP cluster
kubectl create deployment kuard --image gcr.io/kuar-demo/kuard-amd64:blue
```## Known issues
- [ ] TMC currently does not support sharding
- [ ] Placements do not work cross-workspaces https://github.com/kcp-dev/contrib-tmc/issues/4
- [ ] Tunneling does not work as of now## Background
https://github.com/kcp-dev/kcp/issues/2954