Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Terraform AWS article #305

Open
wants to merge 18 commits into
base: master
Choose a base branch
from
Open

Terraform AWS article #305

wants to merge 18 commits into from

Conversation

weibeld
Copy link
Collaborator

@weibeld weibeld commented May 14, 2020

export const TerraformAWS = {
id: 'terraform-aws',
url: '/terraform-aws',
title: 'Bootstrapping Kubernetes clusters on AWS with Terraform',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Automating Kubernetes cluster provisioning for testing
  • How to automate Kubernetes cluster provisioning
  • Provisioning Kubernetes clusters at scale for feature testing
  • Testing Kubernetes at scale with a custom installer
  • Building a custom Kubernetes installer


The aim of the project is to enable the creation of disposable kubeadm clusters which is an enabler for running controlled and automated Kubernetes experiments.

_The remainder of this article first reviews the available options for creating Kubernetes clusters and then presents the Terraform module._
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you could add a link to the repo here. I know it was linked above, but it's not clear that is something that you built. I'd say something along the lines of:

And if you want to jump to the code ...


_They allow you to use Kubernetes in a Software as a Service (SaaS) manner._

Naturally, managed Kubernetes services provide the highest degree of automation (creation and operation are entirely done for you), but the least amount of flexibility (you can configure only those settings that the service provider exposes through its API).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Naturally,


## Managed Kubernetes services

Generally, the options for creating a Kubernetes cluster can be divided into two categories: managed services and installation tools.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally,


## Kubernetes installation tools

Kubernetes installation tools allow you to install Kubernetes on your own infrastructure (both on-premises or in the cloud).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

own


In the present configuration, all clusters use the same settings, but you could configure each cluster separately by specifying different [input variales](https://registry.terraform.io/modules/weibeld/kubeadm/aws?tab=inputs) for the individual invocations of the kubeadm module.

> You could also create a dedicated VPC for each cluster by adding additional invocations of the network submodule.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should change if you drop the previous chapter and should be a link to the docs.

terraform apply
```

If you pay attention to the execution plan that Terraform presents to you, you should see that it includes the creation of the resources belonging to two new clusters.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

plan that Terraform presents to you


If you pay attention to the execution plan that Terraform presents to you, you should see that it includes the creation of the resources belonging to two new clusters.

This means, that Terraform will create two new clusters while leaving the existing cluster unchanged — that's because you just added two new cluster specifications in your configuration, but didn't modify the existing one.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This means,


## Installing CNI plugins

You have three clusters now, but something might still itch you about them.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have three clusters now, but all of them are incomplete.


_The CNI plugins indeed completed the setup of your clusters and rendered them fully functional._

At this point, you can launch further Pods in your clusters and do any other kinds of experiments.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and do any other kinds of experiments.

and do more experiments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants