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. The cluster lifecycle status and cloud provider specific configuration are stored as annotations into the Kubernetes Cluster object in the Federation. Cluster Manager uses these annotations to decide which lifecycle operation to perform and how to set up the cluster. Currently AWS and Wercker Clusters are supported. Support for more providers will be added in the near future.
Cluster Manager may be used with Navarkos to help scale out deployments to various cloud providers. When Cluster Manager is used with Navarkos, Navarkos determines on which cluster to perform the operation depending on the demand and supply.
Figure:1 cluster-manager with Navarkos Architecture
The Cluster Manager supports the following operations on clusters:
- Provisioning: Cluster Manager can create 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 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/cluster-manager
Project Makefile supports the following targets
make build-local
- cleans up and build Cluster Manager binary.make build-image
- invokes 'build-local' 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 created 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.
Follow the deploy instructions to deploy Cluster Manager.
Learn how to engage with the Kubernetes community on the community page.
You can reach the maintainers of this project at:
- Slack: tbd
- Mailing List: tbd
- OWNERS file has the project leads listed.
Contributions to this code are welcome!
Refer to CONTRIBUTING.md and LICENSE on how to contribute to the project. Refer to RELEASE.md about the process of release of this 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: tbd
Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.