Giter Club home page Giter Club logo

kube-aws's Introduction

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.

kube-aws's People

Contributors

mumoshu avatar davidmccormick avatar redbaron avatar colhom avatar c-knowles avatar camilb avatar danielfm avatar aaronlevy avatar jollinshead avatar cgag avatar pieterlange avatar dominicgunn avatar neoandroid avatar jeremyd avatar vrtak-cz avatar jorge07 avatar dvdthms avatar ankon avatar bcwaldon avatar gianrubio avatar kylegato avatar whereisaaron avatar omar-nahhas avatar k8s-ci-robot avatar tyrannasaurusbanks avatar kiich avatar icereval avatar confushion avatar martinssipenko avatar cheungpat avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.