Get latest versions of all below:
- kops
- kubectl
- aws
- jq
- gettext
- helm
If running on macOS and using homebrew, to run gettext and specifically envsubst, you may need to run the following:
brew install gettext
brew link --force gettext
- Create your AWS Account
- Setup AWS API Keys with permissions to write to IAM, S3, EC2, Route53
- Clone this repo
- Create a file,
kube-setup/setup-vars
, following the template:
export AWS_ACCESS_KEY_ID=''
export AWS_SECRET_ACCESS_KEY=''
export SSH_PUBLIC_KEY_FILE=''
export AWS_REGION='us-east-1'
export ROOT_DOMAIN='example.com'
export DOMAIN="kube.$ROOT_DOMAIN"
export NODE_COUNT=3
export AUTO_SCALER_MIN=$NODE_COUNT
export AUTO_SCALER_MAX=10
export NODE_VOLUME_SIZE=100
export NODE_SIZE='m4.large'
export MASTER_SIZE='t2.medium'
export DATADOG_API_KEY=''
export USE_BASTION="true" # true or false
# used for deploying to an existing vpc
export VPC_ID=''
export NETWORK_CIDR=''
- Run ./kube-setup/setup-cluster
- Run through the prompts to setup your cluster.
Kubernetes
- Website: http://kubernetes.io/
- Cluster Auto Scaling: https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler/cloudprovider/aws
- Heapster: https://github.com/kubernetes/heapster
- Children’s Guide: https://deis.com/blog/2016/kubernetes-illustrated-guide/ (a little outdated but worth a read)
AWS CLI
- Download: https://aws.amazon.com/cli/
Kops
- GitHub: https://github.com/kubernetes/kops
- Getting started: https://github.com/kubernetes/kops/blob/master/docs/aws.md
- Bastion: https://github.com/kubernetes/kops/blob/master/docs/bastion.md
Helm
- Website: https://helm.sh
- Apps to install: https://hub.kubeapps.com
- GitHub: https://github.com/kubernetes/helm
Grafana
- Website: https://grafana.com