Cluster Manager manages the life cycle of Kubernetes clusters from different cloud providers.
Cluster Manager supports provisioning, scaling up, scaling down and shutting down of Kubernetes clusters on various cloud providers. Currently AWS and Oracle Wercker Clusters are supported. Support for more providers will be added in the near future
The Cluster Manager supports the following operations on clusters:
- Provisioning: Cluster Manager can create creates a new Kubernetes cluster on a cloud provider.
- Scale Up: Cluster Manager can scale up nodes on a currently provisioned cluster on any supported cloud provider
- Scale Down: Cluster Manager can scale down nodes on a currently provisioned cluster on any supported cloud provider
- Shutdown: Cluster Manager can shutdown a currently provisioned cluster on any supported cloud provider
Cluster Manager may be used in tandem with Navarkos to help scale out deployments to various cloud providers.
Figure:1 cluster-manager with Navarkos Architecture
Please refer to Deployment README.md on how to deploy Cluster Manager and use it provision and managed clusters
Contributions to this code are welcome! The code in this repository can be built and tested using the Makefile.
Cluster Manager build has been currently tested with go version 1.8.x
Clone the source to a local repository
export K8S_INCUBATOR_DIR="$GOPATH/src/github.com/kubernetes-incubator"
mkdir -p $K8S_INCUBATOR_DIR
cd $K8S_INCUBATOR_DIR
git clone https://github.com/oracle/kubernetes-incubator/navarkos
Project Makefile supports the following targets
make build-local
- cleans up and build Cluster Manager binary.make build-image
- invokes 'build-local' defined above followed by building Cluster Manager docker image.make build-docker
- cleans up and build docker image of Cluster Manager using docker multi-stage build.make push-image
- pushes an already create Cluster Manager docker image to registry of choice. Use ${DOCKER_REGISTRY} environment variable to specify the registry.make build-push-image
- cleans up, build and push Cluster Manager docker image to a registry of choice. Use ${DOCKER_REGISTRY} environment variable to specify the registry,
Please refer to RELEASE.md about the process of release of this project
Learn how to engage with the Kubernetes community on the community page.
You can reach the maintainers of this project at:
- Slack: #sig-multicluster
- Mailing List: https://groups.google.com/forum/#!forum/sig-multicluster
Please refer to CONTRIBUTING.md on how to contribute to the project
This is a Kubernetes Incubator project. The project was established 2017-12-08. The incubator team for the project is:
- Sponsor: tbd
- Champion: tbd
- SIG:
sig-multiclustertbd
Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.
See also the list of contributors who participated in this project.