k8s-sig-cluster-lifecycleawskubesprayhigh-availabilityansiblekubernetes-clustergcekubernetesbare-metal
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Vincent Schwarzer
952ab03d2a
|
7 years ago | |
---|---|---|
.. | ||
docs | 7 years ago | |
modules | 7 years ago | |
templates | 7 years ago | |
.gitignore | 7 years ago | |
README.md | 7 years ago | |
create-infrastructure.tf | 7 years ago | |
credentials.tfvars.example | 7 years ago | |
output.tf | 7 years ago | |
terraform.tfvars | 7 years ago | |
terraform.tfvars.example | 7 years ago | |
variables.tf | 7 years ago |
README.md
Kubernetes on AWS with Terraform
Overview:
This project will create:
- VPC with Public and Private Subnets in # Availability Zones
- Bastion Hosts and NAT Gateways in the Public Subnet
- A dynamic number of masters, etcd, and worker nodes in the Private Subnet
- even distributed over the # of Availability Zones
- AWS ELB in the Public Subnet for accessing the Kubernetes API from the internet
Requirements
- Terraform 0.8.7 or newer
How to Use:
- Export the variables for your AWS credentials or edit credentials.tfvars:
export aws_access_key="xxx"
export aws_secret_key="yyy"
export aws_ssh_key_name="zzz"
-
Update contrib/terraform/aws/terraform.tfvars with your data
-
Run with
terraform apply -var-file="credentials.tfvars"
orterraform apply
depending if you exported your AWS credentials -
Once the infrastructure is created, you can run the kargo playbooks and supply inventory/hosts with the
-i
flag.
Architecture
Pictured is an AWS Infrastructure created with this Terraform project distributed over two Availability Zones.