knative / knative/serving

[gRPC/http2 auto-detect] Support auto-detection (or upgrade) in Activator

Open
#10,858 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/networking kind/enhancement triage/accepted
Dominant language
Go
Stars
6.1k
Forks
1.2k
Avg merge
2d 7h
Merged PRs (30d)
2

Description

Describe the feature

This is part of #4283.
As part of supporting http2 auto-detect, we need to make changes in health probes, queue proxy, and activator. Below are some notes created by @igorbelianski on the work that needs to be done specifically in activator.

Data Path Notes
Activator always listens on both 8012 an 8013 constructs 2 distinct servers:
  [cmd/activator/main.go](https://github.com/knative/serving/tree/master/cmd/activator/main.go)
     servers := map[string]*http.Server{
	"http1":   pkgnet.NewServer(":"+strconv.Itoa(networking.BackendHTTPPort), ah),
	"h2c":     pkgnet.NewServer(":"+strconv.Itoa(networking.BackendHTTP2Port), ah),
          "profile": profiling.NewServer(profilingHandler),
	}
Queue proxy container construction

While construction queue proxy container we make a static choice on the port 8012/8013
pkg/reconciler/revision/resources/queue.go

func makeQueueContainer(rev *v1.Revision, cfg *config.Config) (*corev1.Container, error) {

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with cmd/activator/main.go to understand the separate HTTP/1 and h2c servers, then inspect pkg/reconciler/revision/resources/queue.go and makeQueueContainer for the static port choice. Trace how these components participate in HTTP/2 auto-detection, and confirm that activator and queue proxy no longer require the static selection described in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.