[gRPC/http2 auto-detect] Support auto-detection (or upgrade) in Activator
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) {
/area networking /triage acecpted /kind enhancement
@evankanderson: The label(s) triage/acecpted cannot be applied, because the repository doesn't have them.
In response to this:
/area networking /triage acecpted /kind enhancement
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.
/triage accepted
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.