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

Make Knative Serving running on Edge (k0s/microshift/...) #12718

Closed
aliok opened this issue Mar 10, 2022 · 28 comments
Closed

Make Knative Serving running on Edge (k0s/microshift/...) #12718

aliok opened this issue Mar 10, 2022 · 28 comments
Labels
kind/feature Well-understood/specified features, ready for coding. triage/accepted Issues which should be fixed (post-triage)

Comments

@aliok
Copy link
Member

aliok commented Mar 10, 2022

Describe the feature

I am curious to see what kind of issues / limitations we will have when we want to run Knative Serving on something like k0s or Microshift.

With leveraging mink and creating a single binary for Knative + Kube with k0s, we could achieve very minimal footprint.

@aliok aliok added the kind/feature Well-understood/specified features, ready for coding. label Mar 10, 2022
@aliok
Copy link
Member Author

aliok commented Mar 10, 2022

FYI, @csantanapr and I want to make this experiment done by a GSoC contributor this summer.

@csantanapr
Copy link
Member

Thanks for opening the issue @aliok 👍

A few other random thoughts

  • is what parts of knative we can turn off or remove that are not need it at edge worker node
  • worker node with control plane components vs worker edge node (ie containerd, kubelet, Knative user Pod( container+queueproxy))
  • replace queproxy sidecard with a single queue proxy agent (ebpf) on the node
  • benchmark with a baseline and automate testing measuring footprint with metrics

@csantanapr
Copy link
Member

Assumptions for edge device?

  • no HA need it, can wait for things to be recreated
  • max limit always 1, things can be queue eventually everything is process by the one use pod
  • slow connection between edge worker node and control plane node. How the slow connection affects connections. Where are the ingress and activator live?

@aliok
Copy link
Member Author

aliok commented Mar 10, 2022

  • is what parts of knative we can turn off or remove that are not need it at edge worker node
    worker node with control plane components vs worker edge node (ie containerd, kubelet, Knative user Pod( container+queueproxy))

Big +1 on this one. This is the most interesting thing for me.

  • replace queproxy sidecard with a single queue proxy agent (ebpf) on the node

Sounds great but maybe optional.

  • benchmark with a baseline and automate testing measuring footprint with metrics

What would be the baseline? But, for sure I would be interested in seeing something like "on a RaspPi XYZ device, system was able to handle this and that"

Assumptions for edge device?

  • no HA need it, can wait for things to be recreated

+1

  • max limit always 1, things can be queue eventually everything is process by the one use pod

Queued where?

  • slow connection between edge worker node and control plane node. How the slow connection affects connections. Where are the ingress and activator live?

"Where are the ingress and activator live?" is a tough question :)

Well, I don't know many of the answers and I see this as a research project that we can guide a contributor.

@csantanapr
Copy link
Member

yes all my questions and comments, are for the summer students to look into it and research with us

@csantanapr
Copy link
Member

The intention was not to answer them today, but answering them together during the summer internship

@rahul3002
Copy link

Hi all. I am Excel, and I im interested in contributing to this project for GSoC '22. I have joined the community, and have been looking into Knative too. I am thinking of attending the event that was posted on the community to get up to speed with Knative in general.

Is this alright? And are there any prerequisites I need to complete to increase my chances, or to write a good proposal? Thank you!

@csantanapr
Copy link
Member

csantanapr commented Apr 2, 2022

Hi Rahul
One way to increase your chances is to include in your proposals Additional alternatives to investigate and provide more details on it. For example, what about using Talos is k8s native operating system? What about if the operating system also included knative capabilities? Would that make it more efficient footprint-wise?

@rahul3002
Copy link

can I work on this issue?

@github-actions
Copy link

This issue is stale because it has been open for 90 days with no
activity. It will automatically close after 30 more days of
inactivity. Reopen the issue with /reopen. Mark the issue as
fresh by adding the comment /remove-lifecycle stale.

@github-actions github-actions bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 25, 2022
@rahul3002
Copy link

/reopen

@rahul3002
Copy link

/remove-lifecycle stale.

@cubxxw
Copy link

cubxxw commented Mar 20, 2023

Is this project lifecycle out of date for GSoC 2023? @csantanapr @aliok

@aliok
Copy link
Member Author

aliok commented Mar 21, 2023

@knative-prow knative-prow bot reopened this Mar 21, 2023
@knative-prow
Copy link

knative-prow bot commented Mar 21, 2023

@aliok: Reopened this issue.

In response to this:

/reopen

This issue is listed for GSoC 2023 here: https://github.com/cncf/mentoring/blob/main/summerofcode/2023.md#porting-knative-serving-to-microshift

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@github-actions github-actions bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Mar 22, 2023
@naveenrajm7
Copy link

Hi

I have experimented and installed Knative serving in K0s as part of the proposal for GSoC '23 .
I am adding a reference here in case someone wants to run knative serving in k0s with minimal resource.
Knative Serving in k0s

@csantanapr
Copy link
Member

@naveenrajm7 This is an awesome investigation and example

I would love to have your write up as a blog post on our website knative.dev in time for KubeCon EU April 18th

Would you be willing to create a PR to add a blog post?
https://github.com/knative/docs

I think further optimizations can be done, but what you have accomplished is a good investigation 🚀

@naveenrajm7
Copy link

Hi @csantanapr

Great to hear this from you.
Here is the PR for blog post knative/docs#5514

Yes, In this work just resource reduction was done and no real optimization was performed. I would like to explore optimizing Knative for Edge as part of GSoC and would appreciate your pointers/guidance on my GSoC proposal

Thanks!

@ReToCode
Copy link
Member

/triage accepted

@knative-prow knative-prow bot added the triage/accepted Issues which should be fixed (post-triage) label Mar 27, 2023
@naveenrajm7
Copy link

Hi @aliok
This didn't make it into GSoC'23.
Would it be possible for this to go in LFX Mentorship Term 02 - 2023 June - August .

@aliok
Copy link
Member Author

aliok commented May 5, 2023 via email

@aliok
Copy link
Member Author

aliok commented May 5, 2023

@naveenrajm7 I created cncf/mentoring#955

@hackeramitkumar
Copy link

Hii @aliok, This proposal looks interesting. I would to like to apply for this in LFX mentorship. It will be really helpful if you can tell me the prerequisites for this.

@tantan31418
Copy link

Hi @ReToCode @skonto,

I wanted to express my interest in this mentorship program and inform you that I have already applied through the LFX console. I have a solid background in computer science and have gained experience in developing event-triggered functions using Cloud Run, Cloud Functions, and Lambda.

I am particularly excited to learn more about implementing GoLang and practicing Knative on minimal Kubernetes resources. To kickstart my journey, I plan to follow the document titled "Knative Serving in k0s" available at Knative Serving in k0s. Additionally, I am eager to explore the possibilities of utilizing Knative on edge environments.

Thank you for considering my application. I look forward to the opportunity to learn and contribute.

@sagnik3788
Copy link

@aliok is there anyone still working on this issue

@ReToCode
Copy link
Member

ReToCode commented Jan 3, 2024

@naveenrajm7 did finish the work on this and did a write-up here. @naveenrajm7 do you still plan to write a blog-post about this?

@naveenrajm7
Copy link

Hi
I did write a blog post on this project which featured in the CNCF LFX graduation post , the original post is here. As you pointed out the technical report is in my github repo

@ReToCode
Copy link
Member

ReToCode commented Jan 4, 2024

Ok, I meant on the Knative Blog as well :) But the existing one should be sufficient, so I'm going to close this issue.

@ReToCode ReToCode closed this as completed Jan 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Well-understood/specified features, ready for coding. triage/accepted Issues which should be fixed (post-triage)
Projects
None yet
Development

No branches or pull requests

9 participants