All Projects → ilhaan → Kubecdn

ilhaan / Kubecdn

Licence: apache-2.0
Self-hosted CDN based on Kubernetes

Projects that are alternatives of or similar to Kubecdn

Terraform Aws Cloudfront S3 Cdn
Terraform module to easily provision CloudFront CDN backed by an S3 origin
Stars: ✭ 162 (-48.41%)
Mutual labels:  terraform, hcl, cdn
Terraform Aws Tfstate Backend
Terraform module that provision an S3 bucket to store the `terraform.tfstate` file and a DynamoDB table to lock the state file to prevent concurrent modifications and state corruption.
Stars: ✭ 229 (-27.07%)
Mutual labels:  terraform, hcl
Terraform Kubestack
Terraform GitOps Framework — Everything you need to build reliable automation for AKS, EKS and GKE Kubernetes clusters in one free and open-source framework.
Stars: ✭ 300 (-4.46%)
Mutual labels:  terraform, hcl
Elasticsearch Cloud Deploy
Deploy Elasticsearch on the cloud easily
Stars: ✭ 308 (-1.91%)
Mutual labels:  terraform, hcl
Terraform Aws Ecs Container Definition
Terraform module to generate well-formed JSON documents (container definitions) that are passed to the aws_ecs_task_definition Terraform resource
Stars: ✭ 217 (-30.89%)
Mutual labels:  terraform, hcl
Azure arc
Automated Azure Arc environments
Stars: ✭ 224 (-28.66%)
Mutual labels:  terraform, hcl
Terraform Aws Eks Cluster
Terraform module for provisioning an EKS cluster
Stars: ✭ 256 (-18.47%)
Mutual labels:  terraform, hcl
Terraform Ecs Fargate
Source code for a tutorial on Medium I published - "Deploying Containers on Amazon’s ECS using Fargate and Terraform: Part 2"
Stars: ✭ 208 (-33.76%)
Mutual labels:  terraform, hcl
Terraform Examples
Terraform samples for all the major clouds you can copy and paste. The future, co-created.
Stars: ✭ 256 (-18.47%)
Mutual labels:  terraform, hcl
Provisioning
Kubernetes cluster provisioning using Terraform.
Stars: ✭ 277 (-11.78%)
Mutual labels:  terraform, hcl
Vim Terraform Completion
A (Neo)Vim Autocompletion and linter for Terraform, a HashiCorp tool
Stars: ✭ 280 (-10.83%)
Mutual labels:  terraform, hcl
Terraform Ecs Fargate
A Terraform template used for provisioning web application stacks on AWS ECS Fargate
Stars: ✭ 293 (-6.69%)
Mutual labels:  terraform, hcl
Terraform Aws Elastic Beanstalk Environment
Terraform module to provision an AWS Elastic Beanstalk Environment
Stars: ✭ 211 (-32.8%)
Mutual labels:  terraform, hcl
Terragrunt Infrastructure Live Example
A repo used to show examples file/folder structures you can use with Terragrunt and Terraform
Stars: ✭ 286 (-8.92%)
Mutual labels:  terraform, hcl
Terraform Website S3 Cloudfront Route53
Terraform scripts to setup an S3 based static website, with a CloudFront distribution and the required Route53 entries.
Stars: ✭ 210 (-33.12%)
Mutual labels:  terraform, hcl
Terraform validate
Assists in the enforcement of user-defined standards in Terraform
Stars: ✭ 245 (-21.97%)
Mutual labels:  terraform, hcl
Kubenow
Deploy Kubernetes. Now!
Stars: ✭ 285 (-9.24%)
Mutual labels:  terraform, hcl
Terraform Fargate Example
Example repository to run an ECS cluster on Fargate
Stars: ✭ 206 (-34.39%)
Mutual labels:  terraform, hcl
Intellij Hcl
HCL language support for IntelliJ platform based IDEs
Stars: ✭ 207 (-34.08%)
Mutual labels:  terraform, hcl
Cloudblock
Cloudblock automates deployment of secure ad-blocking for all of your devices - even when mobile. Step-by-step text and video guides included! Compatible clouds include AWS, Azure, Google Cloud, and Oracle Cloud. Cloudblock deploys Wireguard VPN, Pi-Hole DNS Ad-blocking, and DNS over HTTPS in a cloud provider - or locally - using Terraform and Ansible.
Stars: ✭ 257 (-18.15%)
Mutual labels:  terraform, hcl

kubeCDN

A self-hosted content delivery network based on Kubernetes. Easily setup Kubernetes clusters in multiple AWS regions and deploy resilient and reliable services to a global user base within minutes.

This project was developed by Ilhaan Rasheed during his tenure as a DevOps Engineering Fellow at Insight. The capabilities of this project have been demonstrated using video streaming as an example. Ilhaan's presentation slides with a short demo is available here.

Here is a detailed blog post about kubeCDN.


Instructions

Getting Started

Before deploying your self-hosted CDN using kubeCDN, you will need the following:

  • AWS account and credentials with appropriate permissions to setup EC2 instances, VPCs and EKS clusters. All documentation and software components of this project assumes that awscli is being used to manage AWS credentials.
  • Install Terraform. This project was developed using Terraform v0.11.11.
  • Install kubectl v1.13.2 or higher.
  • Install helm v2.12.3 or higher. On macOS, you can install helm using brew install kubernetes-helm.
  • Install aws-iam-authenticator

After the components above have been installed, clone this repo and proceed to the next section.

Deploy Clusters & Service

  1. Deploy Clusters
    • To deploy EKS clusters in multiple regions, follow instructions from here.
  2. Setup Route53
    • Instructions to setup Route53 can be found here.
  3. Install ExternalDNS
    • Follow instructions here.
  4. Install Monitoring tools
    • Install Prometheus and Grafana by following instructions here.
  5. Deploy Demo Video Server
    • To demonstrate kubeCDN, a simple Nginx based RTMP streaming server was created. Follow instructions here for more information on this server and for deploy instructions.

Teardown

Follow these instructions to teardown all deployed services and infrastructure.

  1. First, all services that have been deployed need to be removed. There is a script in the root directory of this repo that performs this task. Run it using:
./services_teardown.sh
  1. The second teardown step is to remove all infrastructure that was setup in step 1 of the section above. This can be done by navigating to the terraform directory and running the following:
terraform destroy -auto-approve 

This process takes about 10 minutes to complete with two regions.

  1. After successful run of the previous step, all infrastructure associated with kubeCDN should have been torn down. Verify this on AWS Console in order to avoid accidental charges on your account.
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].