A Kubernetes job runs a command that finishes, rather than keeping an application running like a deployment. It fits one-off work that must happen inside a cluster, such as registering Feast features before an ML pipeline retrieves them. section 5.1.1
Register features from inside the cluster
A locally run `feast apply` registered feature file sources using `localhost`, but MinIO is available to the workload through an internal cluster service, not a public endpoint. Register the features again with file sources pointing to MinIO directly, change the S3 endpoint override to `https://minio-service.kubeflow.svc.cluster.local:9000`, and run `feast apply` in a Kubernetes job. The job terminates after the command runs; feature retrieval can then use the nonlocal registry. section 5.1.1
A job can also be an internal deployment step. When a Bento deployment is submitted in Yatai, Yatai runs a Kubernetes job to build its Docker image. Once that job completes, the application’s API Server and Runner pods can start. The image-building job is temporary; the deployment pods serve requests. section 6.1.3
Figure 6.8 Yatai running a job to containerize the application and build an image
Shows the Yatai job that containerizes the application and builds its image before deployment pods launch. section 6.1.3



