×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
KAWS Deploying Kubernetes Clusters using AWS, CoreOS, Terraform, and Rust @jimmycuadra
Slide 2
Slide 2 text
KUBERNETES IS THE FUTURE
Slide 3
Slide 3 text
$ export KUBERNETES_PROVIDER=aws $ curl -sS https://get.k8s.io | bash
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
Reproducible infrastructure
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
resource "aws_elb" "frontend" { name = "frontend-load-balancer" listener { instance_port = 8000 instance_protocol = "http" lb_port = 80 lb_protocol = "http" } instances = ["${aws_instance.app.*.id}"] } resource "aws_instance" "app" { count = 5 ami = "ami-043a5034" instance_type = "m1.small" }
Slide 8
Slide 8 text
$ terraform plan
Slide 9
Slide 9 text
+ aws_instance.example ami: "" => "ami-043a5034" availability_zone: "" => "" instance_type: "" => "m1.small" key_name: "" => "" private_dns: "" => "" private_ip: "" => "" public_dns: "" => "" public_ip: "" => "" security_groups: "" => "" subnet_id: "" => ""
Slide 10
Slide 10 text
$ terraform apply
Slide 11
Slide 11 text
Provisioning
Slide 12
Slide 12 text
Workflow
Slide 13
Slide 13 text
INTRODUCING KAWS
Slide 14
Slide 14 text
Goals
Slide 15
Slide 15 text
Infrastructure as code
Slide 16
Slide 16 text
Production grade Kubernetes clusters
Slide 17
Slide 17 text
Secure access credentials
Slide 18
Slide 18 text
Shell scripts
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
$ kaws init my-companys-infrastructure $ cd my-companys-infrastructure $ git init
Slide 21
Slide 21 text
$ tree . !"" clusters !"" pubkeys #"" terraform #"" main.tf
Slide 22
Slide 22 text
$ cat terraform/main.tf module "kaws" { source = "github.com/InQuicker/kaws//terraform?ref=v0.1.0" ... }
Slide 23
Slide 23 text
$ kaws key export
[email protected]
Slide 24
Slide 24 text
$ tree . !"" clusters !"" pubkeys $ #""
[email protected]
#"" terraform #"" main.tf
Slide 25
Slide 25 text
$ kaws cluster create staging \ --ami ami-1234 \ --domain example.com \ --kubernetes-version 1.0.7 \ --instance-size m3.medium \ --ssh-key deployer \ --uid
[email protected]
\ --zone-id Z1D633PJN98FT9
Slide 26
Slide 26 text
$ tree . !"" clusters $ #"" staging $ !"" apiserver-key.pem.asc $ !"" apiserver.pem $ !"" ca-key.pem.asc $ !"" ca.pem $ !"" ca.srl $ !"" node-key.pem.asc $ !"" node.pem $ !"" openssl.cnf $ !"" terraform.tfstate $ #"" terraform.tfvars !"" pubkeys $ #""
[email protected]
#"" terraform #"" main.tf
Slide 27
Slide 27 text
$ kaws cluster apply staging
Slide 28
Slide 28 text
kubernetes.example.com
Slide 29
Slide 29 text
$ kaws admin create $ kaws admin sign $ kaws admin install
Slide 30
Slide 30 text
OPEN SOURCED TODAY
Slide 31
Slide 31 text
github.com/InQuicker/kaws
Slide 32
Slide 32 text
THANK YOU @jimmycuadra
Slide 33
Slide 33 text
QUESTIONS? @jimmycuadra