-
Feature
-
Resolution: Done
-
Major
-
None
-
None
-
None
Summary
This is a downstream tracker for the existing upstream issue: https://github.com/knative/serving/issues/8949.
This feature is requested by RHAI in https://issues.redhat.com/browse/RHOAIENG-1065.
Context
The main issue with the current implementation is, that Knative was designed to be a "simplified" version of Kubernetes. With that, the design has certain limitations compared to vanilla Kubernetes deployments. One such limitation is, that Knatives initial design expected only one "actively used" user container to be present.
Although we extended Knative to partially support multiple containers (like sidecars), it is still not equivalent to what vanilla Kubernetes provides.
Problem description
Knative components like Activator and ingress-controller use their own logic (and requests) to check the health of a pod using against a single port in the user container. If we introduce health/liveness checks on multiple port/containers, we need to rethink that design and re-align how different parts of Knative check the overall health. One solution proposed by Dave is to only rely on Kubernetes health reporting (basically just ask the K8s api if the pod is ready).
It is also noteworthy, that Knative today can be faster in detecting a healthy pod, as Kubernetes has a bit more overhead (Kubelet, reporting back via ETCD, K8s API). So this might add to the overall cold start time negatively.
- is documented by
-
SRVKS-1220 [DOC] create documentation for "Support readiness/liveness for multiple containers"
-
- Closed
-
- links to