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

[EKS + Fargate] [request]: Managed Knative (i.e., competitor to Google Cloud Run) #763

Open
bencompton opened this issue Feb 20, 2020 · 2 comments
Labels
EKS Amazon Elastic Kubernetes Service Fargate AWS Fargate Proposed Community submitted issue

Comments

@bencompton
Copy link

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Tell us about your request

I'm curious if there is any interest in building a managed Knative platform for AWS, similar to Google Cloud Run.

Which service(s) is this request for?

This could seemingly leverage Fargate + EKS behind the scenes, but would be better as a new service that doesn't require paying for the EKS control plane and compute resources required to run Knative / Itsio.

Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?

Fargate with EKS is a step in the right direction for a serverless CaaS platform based on FOSS / open standards, but it lags behind Google Cloud Run in certain respects, such as:

  • No ability to scale to 0. At least a minimal number of containers must be running perpetually to provide HA in many cases, which can lead to a lot of underutilization and wasted compute costs.

  • Fargate would ideally be capable of spinning up a container in under a second to support time-sensitive, event-driven use cases like scaling to 0, where usability is seriously impacted by longer start times. I believe this is not possible with Fargate today due to [Fargate/ECS] [Image caching]: provide image caching for Fargate. #696. In addition, Fargate charges for the time that a container is downloading, which is a double-whammy because not only do consumers have to wait for containers images to download that should have been cached, but also have to pay for this time! A pricing model similar to CR would be more ideal.

  • While EKS + Fargate could be used to self-host Knative + Itsio, the consumer would have the burden of configuring and managing this infrastructure, in addition to paying for its required compute resources (Knative + Itsio Fargate microVMs, as well as EKS control plane). The costs could be mitigated somewhat in many cases if Fargate supported options like [Fargate] [request]: Burstable CPU #163, [Fargate] [Task Resources]: Allow smaller CPU/Memory configurations #79, and [EKS + Fargate] [request]: Multiple pods in the same microVM #751 to allow hosting containers with a lot of idle time in Fargate more cost-effectively.

Are you currently working around this issue?

Using EKS without Knative.

@bencompton bencompton added the Proposed Community submitted issue label Feb 20, 2020
@mikestef9 mikestef9 added EKS Amazon Elastic Kubernetes Service Fargate AWS Fargate labels Apr 29, 2020
@mreferre
Copy link

mreferre commented Jun 2, 2020

This does not address the ask but I thought I'd add it to this issue for visibility: https://github.com/mreferre/knative-on-fargate

@joebowbeer
Copy link
Contributor

Another repo in this space. A custom lambda runtime:

https://github.com/triggermesh/knative-lambda-runtime

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
EKS Amazon Elastic Kubernetes Service Fargate AWS Fargate Proposed Community submitted issue
Projects
None yet
Development

No branches or pull requests

4 participants