Giter Club home page Giter Club logo

sak-alb-controller's Introduction

Overview

AWS Load Balancer Controller is a controller to help manage Elastic Load Balancers for a Kubernetes cluster.

When you create a Kubernetes ingress, an AWS Application Load Balancer (ALB) is provisioned that load balances application traffic. To learn more, see What is an Application Load Balancer? in the Application Load Balancers User Guide and Ingress in the Kubernetes documentation. ALBs can be used with pods that are deployed to nodes or to AWS Fargate. You can deploy an ALB to public or private subnets.

How it works (Application Load Balancer)

  • The following diagram details the AWS components this controller creates. It also demonstrates the route ingress traffic takes from the ALB to the Kubernetes cluster.

alt text

Example manifest to provision a load balancer (kubectl apply -f example_below.yaml)

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment-2048
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: app-2048
  replicas: 1
  template:
    metadata:
      labels:
        app.kubernetes.io/name: app-2048
    spec:
      containers:
      - image: public.ecr.aws/l6m2t8p7/docker-2048:latest
        imagePullPolicy: Always
        name: app-2048
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: service-2048
spec:
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
  type: NodePort
  selector:
    app.kubernetes.io/name: app-2048
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-2048
  annotations:
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
spec:
  ingressClassName: alb
  rules:
    - http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: service-2048
              port:
                number: 80

Requirements

terraform >= 1.1

Providers

Name Version
aws >= 3.0
helm >= 1.0
kubernetes >= 1.11

Inputs

Name Description Type Default Required
argocd A set of values for enabling deployment through ArgoCD map(string) {} no
cluster_name The name of the cluster the charts will be deployed to string n/a yes
conf A set of parameters to pass to Nginx Ingress Controller chart map {} no
module_depends_on A list of explicit dependencies for the module list [] no
namespace A name of the existing namespace string "kube-system" no
namespace_name A name of namespace for creating string "external-dns" no
tags A tags for attaching to new created AWS resources map(string) {} no
vpc_id An ID of the VPC string "" yes

Outputs

Name Description
alb_ingress ALB ingress resource

Example

This example demonstrates how you can use alb controller.

module "alb-ingress" {
  depends_on   = [module.argocd]
  source       = "github.com/provectus/sak-alb-controller"
  cluster_name = module.eks.cluster_id
  vpc_id       = module.network.vpc_id
  argocd       = module.argocd.state
}

sak-alb-controller's People

Contributors

pvlbnkl avatar akastav avatar wallhided avatar asaushkin avatar doncilas avatar

Stargazers

Garegin Tamrazyan avatar ranjanprj avatar

Watchers

Mikhail Stolbov avatar Marat Galiev avatar  avatar Vyatcheslav Mogilevsky avatar Romаn Mоvchan avatar Olga La avatar James Cloos avatar Andrey avatar Konstantin Makarychev avatar Marat Shaikhutdinov avatar Eduard Dautov avatar Aleksandr Belov avatar Marat Adiyatullin avatar Gleb avatar  avatar Roman Gafiatullin avatar  avatar egorgorodov avatar Stanislaw Meshkov avatar Mau Rodríguez Morales avatar Aleksei Chumagin avatar Akhmetov Rinat avatar Marat Chukmarov avatar Azat Gataullin avatar Leonid avatar  avatar Kamil Islamov avatar Andrey Esmeneev avatar Hany Said avatar Steve Dieckbrader avatar Vitalii Vikhastyi avatar Maxim Sokolov avatar Damir Abdullin avatar  avatar Diego Ching Jenkins avatar Davletov Almir avatar Andrii Paslavskyi avatar Oksana Lyhuta avatar Andrés Peña avatar Stanislav avatar Isaac Granados Gomez avatar Vitaliy avatar maksim_tereshin avatar Artur avatar  avatar Maxim Krymchak avatar Iskandar Sitdikov avatar  avatar Flyur Karimov avatar Rail Zakirov avatar Max Ibragimov avatar Gyulumian avatar  avatar Igor Shevchenko avatar Aleksandr Shpiller avatar Oleksandr Kazakov avatar Andrii Ryzhkov avatar Oleksii avatar  avatar Alexey Zavyalov avatar Lenar Gabdrakhmanov avatar  avatar Serhii Sokolov avatar  avatar  avatar  avatar  avatar  avatar Ievgen Ushakov avatar Aram Ohanyan avatar Artem Oleksiuk avatar  avatar Oleksii Ivliev avatar Ilgam Shakirov avatar usmanovbf avatar Nail Badiullin avatar Denis Burtsev avatar Azat Safin avatar Semyon Melnikov avatar William Daza avatar Takhsin Saraira avatar  avatar Madina Gafarova avatar Pavlo Gomeniuk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.