Kubernetes on AWS (kube-aws)
master branch may be in an unstable or even broken state during development. Please use releases instead of the
master branch in order to get stable binaries.
kube-aws is a command-line tool to create/update/destroy Kubernetes clusters on AWS.
- Create, update and destroy Kubernetes clusters on AWS
- Review changes before applying
- Highly available and scalable Kubernetes clusters backed by multi-AZ deployment and Node Pools
- Deployment to an existing VPC
- Powered by various AWS services including CloudFormation, KMS, Auto Scaling, Spot Fleet, EC2, ELB, S3, etc.
Getting Started / Manual
Check out our getting started tutorial to launch your first Kubernetes cluster on AWS.
Each command supports following options:
--silentdo not show messages
--verboseshow debug messages
--coloruse color for messages
$ mkdir my-cluster $ cd my-cluster $ kube-aws init \ --cluster-name=my-cluster \ --region=us-west-1 \ --availability-zone=us-west-1c \ --hosted-zone-id=<my-hosted-zone> \ --external-dns-name=<my-cluster-endpoint> \ --key-name=<key-pair-name> \ --kms-key-arn="arn:aws:kms:us-west-1:xxxxxxxxxx:key/xxxxxxxxxxxxxxxxxxx" \ --s3-uri=s3://examplebucket/mydir
us-west-1c is used for parameter
--availability-zone, but supported availability zone varies among AWS accounts.
Please check if
us-west-1c is supported by
aws ec2 --region us-west-1 describe-availability-zones, if not switch to other supported availability zone. (e.g.,
$ kube-aws render credentials --generate-ca $ kube-aws render stack
View generated certificates:
$ kube-aws show certificates
$ kube-aws validate
$ kube-aws apply # Or export your cloudformation stack and dependent assets into the `exported/` directory $ kube-aws apply --export # Access the cluster $ KUBECONFIG=kubeconfig kubectl get nodes --show-labels
# Modify your cluster.yaml $ $EDITOR cluster.yaml # Reviews changes to cfn stacks and EC2 userdata $ kube-aws diff --context 3 --color # Update all the cfn stacks including the one for control-plane and the ones for worker node pools $ kube-aws apply
# Destroy all the cfn stacks including the one for control-plane and the ones for worker node pools. Use `--force` for skip confirmation. $ kube-aws destroy
Extra or advanced topics in for kube-aws:
The following links can be useful for development:
Please feel free to reach out to the kube-aws community on: #kube-aws in the kubernetes slack
This is a Kubernetes Incubator project. The project was established 2017-03-15. The incubator team for the project is:
- Sponsor: Tim Hockin (@thockin)
- Champion: Mike Danese (@mikedanese)
- SIG: sig-aws
Code of conduct
Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.
Submit a PR to this repository, following the contributors guide.
Details of how to develop kube-aws are in our Developer Guide.