From 02f4bef7b3c6adcc2341d85dde46a968584bce69 Mon Sep 17 00:00:00 2001 From: Kelsey Hightower Date: Sun, 11 Sep 2016 02:53:34 -0700 Subject: [PATCH] add support for aws --- docs/01-infrastructure-aws.md | 25 +++++++++++++++++-------- docs/01-infrastructure-gcp.md | 11 ++++++----- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/docs/01-infrastructure-aws.md b/docs/01-infrastructure-aws.md index 3722df3..58f2260 100644 --- a/docs/01-infrastructure-aws.md +++ b/docs/01-infrastructure-aws.md @@ -10,7 +10,9 @@ After completing this guide you should have the following compute instances: To make our Kubernetes control plane remotely accessible, a public IP address will be provisioned and assigned to a Load Balancer that will sit in front of the 3 Kubernetes controllers. -## Create a Custom Network +## Networking + +### VPC ``` VPC_ID=$(aws ec2 create-vpc \ @@ -36,6 +38,8 @@ aws ec2 modify-vpc-attribute \ --enable-dns-hostnames '{"Value": true}' ``` +### DHCP Option Sets + ``` DHCP_OPTION_SET_ID=$(aws ec2 create-dhcp-options \ --dhcp-configuration "Key=domain-name,Values=us-west-2.compute.internal" \ @@ -55,6 +59,8 @@ aws ec2 associate-dhcp-options \ --vpc-id ${VPC_ID} ``` +### Subnets + Create a subnet for the Kubernetes cluster: ``` @@ -70,7 +76,7 @@ aws ec2 create-tags \ --tags Key=Name,Value=kubernetes ``` -Create an internet gateway +### Internet Gateways ``` INTERNET_GATEWAY_ID=$(aws ec2 create-internet-gateway | \ @@ -89,7 +95,7 @@ aws ec2 attach-internet-gateway \ --vpc-id ${VPC_ID} ``` -### Route Table +### Route Tables ``` ROUTE_TABLE_ID=$(aws ec2 create-route-table \ @@ -162,9 +168,9 @@ aws ec2 authorize-security-group-ingress \ --cidr 0.0.0.0/0 ``` -## Create the Kubernetes Public IP Address +### Kubernetes Public Address -Create a public IP address that will be used by remote clients to connect to the Kubernetes control plane: +An ELB will be used to load balance traffic across the Kubernetes control plane. ``` aws elb create-load-balancer \ @@ -173,6 +179,7 @@ aws elb create-load-balancer \ --subnets ${SUBNET_ID} \ --security-groups ${SECURITY_GROUP_ID} ``` + ``` KUBERNETES_PUBLIC_IP_ADDRESS=$(aws elb describe-load-balancers \ --load-balancer-name kubernetes | \ @@ -257,7 +264,9 @@ chmod 600 ~/.ssh/kubernetes_the_hard_way ssh-add ~/.ssh/kubernetes_the_hard_way ``` -### etcd +### Virtual Machines + +#### etcd ``` ETCD_0_INSTANCE_ID=$(aws ec2 run-instances \ @@ -316,7 +325,7 @@ aws ec2 create-tags \ --tags Key=Name,Value=etcd2 ``` -### Kubernetes Controllers +#### Kubernetes Controllers ``` CONTROLLER_0_INSTANCE_ID=$(aws ec2 run-instances \ @@ -378,7 +387,7 @@ aws ec2 create-tags \ --tags Key=Name,Value=controller2 ``` -### Kubernetes Workers +#### Kubernetes Workers ``` WORKER_0_INSTANCE_ID=$(aws ec2 run-instances \ diff --git a/docs/01-infrastructure-gcp.md b/docs/01-infrastructure-gcp.md index aa0bc63..17fa867 100644 --- a/docs/01-infrastructure-gcp.md +++ b/docs/01-infrastructure-gcp.md @@ -25,7 +25,7 @@ worker2 us-central1-f n1-standard-1 10.240.0.32 XXX.XXX.XXX To make our Kubernetes control plane remotely accessible, a public IP address will be provisioned and assigned to a Load Balancer that will sit in front of the 3 Kubernetes controllers. -## Create a Custom Network +## Networking ``` gcloud compute networks create kubernetes --mode custom @@ -109,7 +109,7 @@ kubernetes-allow-rdp kubernetes 0.0.0.0/0 tcp:3389 kubernetes-allow-ssh kubernetes 0.0.0.0/0 tcp:22 ``` -## Create the Kubernetes Public IP Address +### Kubernetes Public Address Create a public IP address that will be used by remote clients to connect to the Kubernetes control plane: @@ -129,8 +129,9 @@ kubernetes us-central1 XXX.XXX.XXX.XXX RESERVED All the VMs in this lab will be provisioned using Ubuntu 16.04 mainly because it runs a newish Linux Kernel that has good support for Docker. +### Virtual Machines -### etcd +#### etcd ``` gcloud compute instances create etcd0 \ @@ -165,7 +166,7 @@ gcloud compute instances create etcd2 \ --subnet kubernetes ``` -### Kubernetes Controllers +#### Kubernetes Controllers ``` gcloud compute instances create controller0 \ @@ -200,7 +201,7 @@ gcloud compute instances create controller2 \ --subnet kubernetes ``` -### Kubernetes Workers +#### Kubernetes Workers ``` gcloud compute instances create worker0 \