All Projects → weaveworks → kubernetes-ami

weaveworks / kubernetes-ami

Licence: Apache-2.0 license
A simple AMI and CloudFormation for launching Kubernetes on AWS

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to kubernetes-ami

Eksctl
The official CLI for Amazon EKS
Stars: ✭ 3,550 (+8558.54%)
Mutual labels:  kubernetes-cluster, aws-ec2, kubernetes-setup, aws-cloudformation
wolkenkratzer
Javascript library for generating CloudFormation templates
Stars: ✭ 13 (-68.29%)
Mutual labels:  cloudformation, aws-cloudformation
K8s-Cluster-Provisioner-GCP-Terrafrom
This repo will seamlessly setup self managed Kubernetes cluster in GCP using Terraform and Kubespray.
Stars: ✭ 17 (-58.54%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
kubernetes the easy way
Automating Kubernetes the hard way with Vagrant and scripts
Stars: ✭ 22 (-46.34%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
cfn-ami-to-mapping
Generate your CloudFormation RegionMap automatically
Stars: ✭ 34 (-17.07%)
Mutual labels:  cloudformation, aws-ec2
icp-ce-on-linux-containers
Multi node IBM Cloud Private Community Edition 3.2.x w/ Kubernetes 1.13.5 in a Box. Terraform, Packer and BASH based Infrastructure as Code script sets up a multi node LXD cluster, installs ICP-CE and clis on a metal or VM Ubuntu 18.04 host.
Stars: ✭ 52 (+26.83%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
kubernetes-cluster
Vagrant As Automation Script
Stars: ✭ 34 (-17.07%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
jenkins kube brains
Example scripts to run Kubernetes on your private VMs. This is to support of Loren and my KubeCon 2018 talk "Migrating Jenkins to Kubernetes broke our brains." https://sched.co/GrSh
Stars: ✭ 34 (-17.07%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
aksctl
An easy to use CLI for AKS cluster
Stars: ✭ 46 (+12.2%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
serverless-cloudformation-sub-variables
Serverless framework plugin for easily supporting AWS CloudFormation Sub intrinsic function variables
Stars: ✭ 25 (-39.02%)
Mutual labels:  cloudformation, aws-cloudformation
qaz
qaz—A CLI tool for Templating & Managing stacks in AWS Cloudformation
Stars: ✭ 89 (+117.07%)
Mutual labels:  cloudformation, aws-cloudformation
serverless-discord-bot
A serverless Discord Bot template built for AWS Lambda based on Discord's slash commands and the slash-create library.
Stars: ✭ 37 (-9.76%)
Mutual labels:  cloudformation, aws-cloudformation
cloudwatch-dashboards-cloudformation-sample
A sample project to demonstrate using Cloudformation, how to create and configure CloudWatch metric filters, alarms and a dashboard to monitor an AWS Lambda function.
Stars: ✭ 61 (+48.78%)
Mutual labels:  cloudformation, aws-cloudformation
kainstall-offline
kainstall tools offline file
Stars: ✭ 31 (-24.39%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
cloudformation-resource-schema
The CloudFormation Resource Schema defines the shape and semantic for resources provisioned by CloudFormation. It is used by provider developers using the CloudFormation RPDK.
Stars: ✭ 77 (+87.8%)
Mutual labels:  cloudformation, aws-cloudformation
aws-cfn-ses-domain
AWS CloudFormation resources for Amazon SES domain and email identities
Stars: ✭ 45 (+9.76%)
Mutual labels:  cloudformation, aws-cloudformation
aws-maven-plugin
Deploys resources to AWS using maven
Stars: ✭ 25 (-39.02%)
Mutual labels:  cloudformation, aws-cloudformation
Aws Cf Templates
A cloudonaut.io project. Engineered by widdix.
Stars: ✭ 2,399 (+5751.22%)
Mutual labels:  cloudformation, aws-cloudformation
Docs
Rapid CloudFormation: Modular, production ready, open source.
Stars: ✭ 209 (+409.76%)
Mutual labels:  cloudformation, aws-cloudformation
aws-kubernetes
Kubernetes cluster setup in AWS using Terraform and kubeadm
Stars: ✭ 32 (-21.95%)
Mutual labels:  kubernetes-cluster, kubernetes-setup

Get Started with Kubernetes on AWS using CloudFormation

A simple CloudFormation template and AMI builder for running Kubernetes on AWS EC2.

The AMI is built with Packer and includes the Kubernetes packages for installation with kubeadm.

Launch Stack

Design

The CloudFormation template creates the following key components:

  • Kubernetes master EC2 instance
  • Auto Scaling Group for the Kubernetes minions
  • Security Group for Kubernetes & pod network comms

Parameters

Required parameters:

  • KubeCommunityAMI (AMI identifier)
  • KeyName (EC2 SSH key pair identifier)
  • NetworkAddon (Can be Weave or NONE, more to be added)

Optional parameters:

  • MasterInstanceType (default m4.large)
  • NodeInstanceType (default m4.xlarge)
  • Nodes (default 3)

Outputs

Once the cluster is running, you need to login to it!

  • MasterIP
  • LoginToMasterCommand
  • GetKubeconfigCommand

Manual Deployment Instructions

There are AMIs published in in all EC2 regions, please consult cloudformation.json for image IDs.

You will need to have an EC2 key in the region where you would like to deploy the cluster.

To create a stack, first clone this repo:

git clone https://github.com/weaveworks/kubernetes-ami
cd kubernetes-ami

Next, copy the command shown above and replace <YOUR_EC2_KEY_NAME> with the name of your SSH key in us-west-2 region.

aws cloudformation create-stack \
    --stack-name KubernetesGettingStarted \
    --region us-west-2 \
    --template-body "file://cloudformation.json" \
    --parameters \
      ParameterKey=KeyName,ParameterValue=<YOUR_EC2_KEY_NAME>

By default a 3-node cluster will be deployed, which takes a few minutes... You can run the following command to check the status of the stack.

> aws --region us-west-2 cloudformation describe-stacks --stack-name KubernetesGettingStarted
{
    "Stacks": [
        {
            "StackId": "arn:aws:cloudformation:us-west-2:992485676579:stack/KubernetesGettingStarted/802a0dad-ad8f-4273-b240-a0f313e1b288",
            "Description": "Getting Started with Kubernetes",
            "Parameters": [
                {
                    "ParameterValue": "<YOUR_EC2_KEY_NAME>",
                    "ParameterKey": "KeyName"
                },
                {
                    "ParameterValue": "m4.large",
                    "ParameterKey": "MasterInstanceType"
                },
                {
                    "ParameterValue": "m4.xlarge",
                    "ParameterKey": "NodeInstanceType"
                },
                {
                    "ParameterValue": "Weave",
                    "ParameterKey": "NetworkAddon"
                },
                {
                    "ParameterValue": "3",
                    "ParameterKey": "Nodes"
                }
            ],
            "Tags": [],
            "Outputs": [
                {
                    "OutputKey": "GetKubeconfigCommand",
                    "OutputValue": "scp -i <YOUR_EC2_KEY_NAME>.pem [email protected]:kubeconfig ./kubeconfig"
                },
                {
                    "OutputKey": "LoginToMasterCommand",
                    "OutputValue": "ssh -i <YOUR_EC2_KEY_NAME>.pem [email protected]"
                },
                {
                    "OutputKey": "MasterIP",
                    "OutputValue": "52.36.245.255"
                }
            ],
            "CreationTime": "2017-02-10T16:14:26.733Z",
            "StackName": "KubernetesGettingStarted",
            "NotificationARNs": [],
            "StackStatus": "CREATE_COMPLETE",
            "DisableRollback": false
        }
    ]
}

As you can see the Outputs section provides a few handy commands you can use to access the cluster.

Have fun using Kubernetes on AWS!

Getting Help

If you have any questions about, feedback for or problems with kubernetes-ami:

Your feedback is always welcome!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].