Skip to content
A command-line tool to declaratively manage Kubernetes clusters on AWS
Go Shell Other
Branch: master
Clone or download
Pull request Compare This branch is 2 commits behind kubernetes-incubator:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
awsconn
builtin
cfnresource
cfnstack
ci
cmd
contrib
core/root
coreos/amiregistry
credential
docs
e2e
filegen
filereader
fingerprint
gzipcompressor
hack
licenses
logger
make
naming
netutil
pkg
pki
plugin
proposals
provisioner
test
tmpl
vendor
.gitignore
.travis.yml
CONTRIBUTING.md
DCO
Gopkg.lock
Gopkg.toml
LICENSE
Makefile
OWNERS
README.md
RELEASE.md
ROADMAP.md
SECURITY_CONTACTS
book.json
build
build-release-binaries
code-of-conduct.md
containerized-build-release-binaries
containerized-test-run
kube-aws-bot-git-ssh-key.enc
main.go

README.md

Kubernetes on AWS (kube-aws)

Go Report Card Build Status License

Note: The 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.

Features

  • 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

View the latest manual for kube-aws

Check out our getting started tutorial to launch your first Kubernetes cluster on AWS.

Global options

Each command supports following options:

  • -s --silent do not show messages
  • -v --verbose show debug messages
  • --color use color for messages

Examples

Generate cluster.yaml:

$ 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

Here 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., us-west-1a, or us-west-1b)

Generate assets:

$ kube-aws render credentials --generate-ca
$ kube-aws render stack

View generated certificates:

$ kube-aws show certificates

Validate configuration:

$ kube-aws validate

Launch:

$ 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

Update:

# 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:

# 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

Other Resources

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

Kubernetes Incubator

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.

Contributing

Submit a PR to this repository, following the contributors guide.

Details of how to develop kube-aws are in our Developer Guide.

You can’t perform that action at this time.