Skip to content
A command-line tool to declaratively manage Kubernetes clusters on AWS
Go Shell Other
Branch: master
Clone or download
chenrui333 and davidmccormick Move to go modules (#1821)
* Move to go modules

* Remove Gopkg*

* update travis config

* Remove GOPATH and update build doc

* Remove vendor folder
Latest commit b6e6901 Jan 23, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
awsconn Add flag to cmds to use AWS profile (#1780) Nov 28, 2019
builtin template: use of InitialConfig to build cluster.yaml (#1824) Jan 23, 2020
cfnresource IAM Role name length checks need to be different when using strict na… Nov 20, 2018
cfnstack StackExists has changed behavoir it should not return an error if a s… Nov 21, 2018
ci Automate publishing of the dedicated kube-aws documentation site Aug 23, 2017
cmd Add flag to cmds to use AWS profile (#1780) Nov 28, 2019
contrib Kubernetes 1.16 Support (#1819) Jan 7, 2020
core/root Add flag to cmds to use AWS profile (#1780) Nov 28, 2019
coreos/amiregistry refactoring kube-aws / experimental IAM-based kubelet auth (#1490) Nov 12, 2018
credential move Kiam to a plugin (#1726) Sep 10, 2019
docs Move to go modules (#1821) Jan 23, 2020
e2e Move to go modules (#1821) Jan 23, 2020
filegen Easier to configure, more tightly integrated node pools Feb 16, 2017
filereader add insertTemplateFile template function which allows embedding a tem… Jul 1, 2019
fingerprint refactoring kube-aws / experimental IAM-based kubelet auth (#1490) Nov 12, 2018
gzipcompressor refactoring kube-aws / experimental IAM-based kubelet auth (#1490) Nov 12, 2018
hack hack: a bit more automated release note generation (#1476) Oct 26, 2018
licenses Add LICENSE for ebs-automatic-nvme-mapping Jun 28, 2018
logger Fix colour causing added newlines Jul 6, 2018
make Move to go modules (#1821) Jan 23, 2020
naming feat: Fine-grained stack update and etcd and network stacks separation ( May 10, 2018
netutil refactoring: Extract the netutil package for future use in the upcomi… Nov 28, 2016
pkg Kubernetes 1.16 Support (#1819) Jan 7, 2020
pki Server certificates also need to be allowed to be used for client aut… Oct 18, 2019
plugin Migrate the kubernetes dashboard to a plugin and plugin templating im… Oct 16, 2019
proposals Move kube2iam to a plugin (#1730) Sep 16, 2019
provisioner master: Fixes for rendering plugin systemd units (#1675) Jul 11, 2019
test Use nodePoolRollingStrategy of 'AvailabilityZone' by default. (#1782) Nov 28, 2019
tmpl Migrate the kubernetes dashboard to a plugin and plugin templating im… Oct 16, 2019
.gitignore refactoring kube-aws / experimental IAM-based kubelet auth (#1490) Nov 12, 2018
.travis.yml Move to go modules (#1821) Jan 23, 2020
CONTRIBUTING.md Update CONTRIBUTING.md Mar 24, 2017
DCO Add the missing DCO Mar 22, 2017
LICENSE Conform as a Kubernetes Incubator Project Mar 14, 2017
Makefile refactoring kube-aws / experimental IAM-based kubelet auth (#1490) Nov 12, 2018
OWNERS Add David and Dominic to owners Jun 19, 2019
README.md Subject: [PATCH] Minor fixes in documentation Nov 30, 2018
RELEASE.md Conform as a Kubernetes Incubator Project Mar 14, 2017
ROADMAP.md Update ROADMAP.md Feb 22, 2018
SECURITY_CONTACTS Add SECURITY_CONTACTS Jun 12, 2018
book.json "Edit This Page" links on the doc are now linked to corresponding edi… Aug 23, 2017
build Move to go modules (#1821) Jan 23, 2020
build-release-binaries [build] only set target os/arch for compile Nov 4, 2016
code-of-conduct.md Update code-of-conduct.md Dec 20, 2017
containerized-build-release-binaries release: use go 1.10 also for releases Sep 25, 2018
containerized-test-run Containerized test run Jul 16, 2017
go.mod Move to go modules (#1821) Jan 23, 2020
go.sum Move to go modules (#1821) Jan 23, 2020
kube-aws-bot-git-ssh-key.enc Automate publishing of the dedicated kube-aws documentation site Aug 23, 2017
main.go feat: `kube-aws diff` Sep 28, 2018

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.