Uploaded image for project: 'Knative Serving'
  1. Knative Serving
  2. SRVKS-1186

Support readiness/liveness for multiple containers

    • Icon: Feature Feature
    • Resolution: Done
    • Icon: Major Major
    • 1.33.0
    • 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.

              rh-ee-rlehmann Reto Lehmann (Inactive)
              rh-ee-rlehmann Reto Lehmann (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated:
                Resolved: