When auditing Kubeflow pipelines, which configuration file is used to define the resource requests for individual pipeline steps?
Trap 1: Namespace policy
A namespace policy governs pod security, quotas and admission rules across a namespace, not per-step resource requests. It is tempting because namespaces constrain compute, but Kubeflow step resources are declared in the pipeline specification's component or container resource fields, which the compiler translates into pod specs.
Trap 2: Kubeconfig file
The kubeconfig file stores cluster endpoints, contexts and user credentials for kubectl access, containing no pipeline step definitions. It is tempting because it configures Kubernetes interaction, but resource requests for individual Kubeflow steps live in the pipeline YAML's component specification, not in client connection settings.
Trap 3: Service mesh config
Service mesh configuration manages traffic routing, mTLS and telemetry between services, not pod resource requests. It is tempting because meshes influence workload behaviour, but CPU and memory requests for Kubeflow steps are declared in the pipeline specification's component definitions, which Kubernetes reads when scheduling each step's pod.
- A
resource_spec in the SDK
The resource_spec parameter in the Kubeflow Pipelines SDK defines per-step CPU, memory and GPU requests and limits, which the compiler translates into Kubernetes pod specifications. This makes it the configuration point for individual pipeline step resources, unlike pipeline-level or cluster-wide settings.
- B
Namespace policy
Why it fails: A namespace policy governs pod security, quotas and admission rules across a namespace, not per-step resource requests. It is tempting because namespaces constrain compute, but Kubeflow step resources are declared in the pipeline specification's component or container resource fields, which the compiler translates into pod specs.
- C
Kubeconfig file
Why it fails: The kubeconfig file stores cluster endpoints, contexts and user credentials for kubectl access, containing no pipeline step definitions. It is tempting because it configures Kubernetes interaction, but resource requests for individual Kubeflow steps live in the pipeline YAML's component specification, not in client connection settings.
- D
Service mesh config
Why it fails: Service mesh configuration manages traffic routing, mTLS and telemetry between services, not pod resource requests. It is tempting because meshes influence workload behaviour, but CPU and memory requests for Kubeflow steps are declared in the pipeline specification's component definitions, which Kubernetes reads when scheduling each step's pod.