add kep for aws alb ingress controller
This commit is contained in:
parent
c701c750ac
commit
1e98ab270f
|
@ -0,0 +1,80 @@
|
|||
---
|
||||
kep-number: draft-20181127
|
||||
title: AWS ALB Ingress Controller
|
||||
authors:
|
||||
- "@M00nF1sh"
|
||||
owning-sig: sig-aws
|
||||
reviewers:
|
||||
- TBD
|
||||
- "@d-nishi"
|
||||
approvers:
|
||||
- TBD
|
||||
- "@d-nishi"
|
||||
editor: TBD
|
||||
creation-date: 2018-11-27
|
||||
last-updated: 2018-11-27
|
||||
status: provisional
|
||||
---
|
||||
|
||||
# AWS ALB Ingress Controller
|
||||
|
||||
## Table of Contents
|
||||
- [Table of Contents](#table-of-contents)
|
||||
- [Summary](#summary)
|
||||
- [Motivation](#motivation)
|
||||
- [Goals](#goals)
|
||||
- [Non-Goals](#non-goals)
|
||||
- [Proposal](#proposal)
|
||||
- [User Stories](#user-stories)
|
||||
- [Expose HTTP[s] API backed by kubernetes services](#expose-https-api-backed-by-kubernetes-services)
|
||||
- [Adjust ALB settings via annotation](#adjust-alb-settings-via-annotation)
|
||||
- [Leverage WAF & Cognito](#leverage-waf--cognito)
|
||||
- [Sharing single ALB among Ingresses across namespace](#sharing-single-alb-among-ingresses-across-namespace)
|
||||
- [Graduation Criteria](#graduation-criteria)
|
||||
- [Implementation History](#implementation-history)
|
||||
|
||||
## Summary
|
||||
|
||||
This proposal introduces [AWS ALB Ingress Controller](https://github.com/kubernetes-sigs/aws-alb-ingress-controller/) as Ingress controller for kubernetes cluster on AWS. Which use [Amazon Elastic Load Balancing Application Load Balancer](https://aws.amazon.com/elasticloadbalancing/features/#Details_for_Elastic_Load_Balancing_Products)(ALB) to fulfill [Ingress resources](https://kubernetes.io/docs/concepts/services-networking/ingress/), and provides integration with various AWS services.
|
||||
|
||||
## Motivation
|
||||
|
||||
In order for the Ingress resource to work, the cluster must have an Ingress controller runnings. However, existing Ingress controllers like [nginx](https://github.com/kubernetes/ingress-nginx/blob/master/README.md) didn't take advantage of native AWS features.
|
||||
AWS ALB Ingress Controller aims to enhance Ingress resource on AWS by leveraging rich feature set of ALB, such as host/path based routing, TLS termination, WebSockets, HTTP/2. Also, it will provide close integration with other AWS services such as WAF(web application firewall) and Cognito.
|
||||
|
||||
### Goals
|
||||
|
||||
* Support running multiple Ingress controllers in cluster
|
||||
* Support portable Ingress resource(no annotations)
|
||||
* Support leverage feature set of ALB via custom annotations
|
||||
* Support integration with WAF
|
||||
* Support integration with Cognito
|
||||
|
||||
### Non-Goals
|
||||
|
||||
* This project does not replacing nginx ingress controller
|
||||
|
||||
## Proposal
|
||||
|
||||
### User Stories
|
||||
|
||||
#### Expose HTTP[s] API backed by kubernetes services
|
||||
Developers create an Ingress resources to specify rules for how to routing HTTP[s] traffic to different services.
|
||||
AWS ALB Ingress Controller will monitor such Ingress resources and create ALB and other necessary supporting AWS resources to match the Ingress resource specification.
|
||||
|
||||
#### Adjust ALB settings via annotation
|
||||
Developers specifies custom annotations on their Ingress resource to adjust ALB settings, such as enable deletion protection, enable access logs to specific S3 bucket.
|
||||
|
||||
#### Leverage WAF & Cognito
|
||||
Developers specifies custom annotations on their Ingress resource to denote WAF and Cognito integrations. Which provides web application firewall and authentication support for their exposed API.
|
||||
|
||||
#### Sharing single ALB among Ingresses across namespace
|
||||
Developers from different teams create Ingress resources in different namespaces which route traffic to services within their own namespace. However, an single ALB is shared from these Ingresses to expose a single DNS name for customers.
|
||||
|
||||
## Graduation Criteria
|
||||
|
||||
* AWS ALB Ingress Controller is widely used as Ingress controller for kubernetes clusters on AWS
|
||||
|
||||
## Implementation History
|
||||
- [community#2841](https://github.com/kubernetes/community/pull/2841) Design proposal
|
||||
- [aws-alb-ingress-controller#738](https://github.com/kubernetes-sigs/aws-alb-ingress-controller/pull/738) First stable release: v1.0.0
|
Loading…
Reference in New Issue