Can't start whisper in k8s

Hi! I tried to run whisper inside k8s but container didn’t started.
My k8s config:

# Source: vllm-chart/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
  name: vllm-whisper-svc
  namespace: airun
  labels:
    app: vllm-whisper
spec:
  type: ClusterIP
  ports:
    - port: 8090
      targetPort: 8000
      protocol: TCP
      name: vllm-whisper-port
  selector:
    app: vllm-whisper
---
# Source: vllm-chart/templates/deployment.yaml
# Deployment for vllm-whisper
apiVersion: apps/v1
kind: Deployment
metadata:
  name: vllm-whisper
  namespace: airun
  labels:
    app: vllm-whisper
spec:
  replicas: 1
  selector:
    matchLabels:
      app: vllm-whisper
  template:
    metadata:
      labels:
        app: vllm-whisper
    spec:
      volumes:
        - name: cache-volume
          persistentVolumeClaim:
            claimName: chat-models
        - name: shm
          emptyDir:
            medium: Memory
            sizeLimit: "10Gi"
      containers:
        - name: vllm-whisper
          image: vllm/vllm-openai:v0.8.3
          command: ["/bin/sh", "-c"]
          args:
            - >
              uv pip install --system vllm[audio]==0.8.3 &&
              vllm serve
              "/hf/whisper-large-v3-turbo"
              --max-model-len 448
              --port 8000
              --task=generate
          ports:
            - containerPort: 8000
          resources:
            limits:
              cpu: "1"
              memory: 40G
              nvidia.com/mig-1g.20gb: "1"
            requests:
              cpu: "1"
              memory: 40G
              nvidia.com/mig-1g.20gb: "1"
          volumeMounts:
            - mountPath: /hf
              name: cache-volume
          livenessProbe:
            httpGet:
              path: /health
              port: 8000
            initialDelaySeconds: 100
            periodSeconds: 10
          readinessProbe:
            httpGet:
              path: /health
              port: 8000
            initialDelaySeconds: 100
            periodSeconds: 5

And logs of container start

Logs
Using Python 3.12.9 environment at: /usr
Resolved 146 packages in 4.74s
Downloading soundfile (1.3MiB)
Downloading scikit-learn (12.5MiB)
 Downloaded soundfile
 Downloaded scikit-learn
Prepared 13 packages in 631ms
Installed 13 packages in 18ms
 + audioread==3.0.1
 + cffi==1.17.1
 + decorator==5.2.1
 + joblib==1.4.2
 + lazy-loader==0.4
 + librosa==0.11.0
 + platformdirs==4.3.7
 + pooch==1.8.2
 + pycparser==2.22
 + scikit-learn==1.6.1
 + soundfile==0.13.1
 + soxr==0.5.0.post1
 + threadpoolctl==3.6.0
INFO 04-10 03:17:24 [__init__.py:239] Automatically detected platform cuda.
INFO 04-10 03:17:26 [api_server.py:1034] vLLM API server version 0.8.3
INFO 04-10 03:17:26 [api_server.py:1035] args: Namespace(subparser='serve', model_tag='/hf/whisper-large-v3-turbo', config='', host=None, port=8000, uvicorn_log_level='info', disable_uvicorn_access_log=False, allow_credentials=False, allowed_origins=['*'], allowed_methods=['*'], allowed_headers=['*'], api_key=None, lora_modules=None, prompt_adapters=None, chat_template=None, chat_template_content_format='auto', response_role='assistant', ssl_keyfile=None, ssl_certfile=None, ssl_ca_certs=None, enable_ssl_refresh=False, ssl_cert_reqs=0, root_path=None, middleware=[], return_tokens_as_token_ids=False, disable_frontend_multiprocessing=False, enable_request_id_headers=False, enable_auto_tool_choice=False, tool_call_parser=None, tool_parser_plugin='', model='/hf/whisper-large-v3-turbo', task='generate', tokenizer=None, hf_config_path=None, skip_tokenizer_init=False, revision=None, code_revision=None, tokenizer_revision=None, tokenizer_mode='auto', trust_remote_code=False, allowed_local_media_path=None, download_dir=None, load_format='auto', config_format=<ConfigFormat.AUTO: 'auto'>, dtype='auto', kv_cache_dtype='auto', max_model_len=448, guided_decoding_backend='xgrammar', logits_processor_pattern=None, model_impl='auto', distributed_executor_backend=None, pipeline_parallel_size=1, tensor_parallel_size=1, data_parallel_size=1, enable_expert_parallel=False, max_parallel_loading_workers=None, ray_workers_use_nsight=False, block_size=None, enable_prefix_caching=None, prefix_caching_hash_algo='builtin', disable_sliding_window=False, use_v2_block_manager=True, num_lookahead_slots=0, seed=None, swap_space=4, cpu_offload_gb=0, gpu_memory_utilization=0.9, num_gpu_blocks_override=None, max_num_batched_tokens=None, max_num_partial_prefills=1, max_long_partial_prefills=1, long_prefill_token_threshold=0, max_num_seqs=None, max_logprobs=20, disable_log_stats=False, quantization=None, rope_scaling=None, rope_theta=None, hf_overrides=None, enforce_eager=False, max_seq_len_to_capture=8192, disable_custom_all_reduce=False, tokenizer_pool_size=0, tokenizer_pool_type='ray', tokenizer_pool_extra_config=None, limit_mm_per_prompt=None, mm_processor_kwargs=None, disable_mm_preprocessor_cache=False, enable_lora=False, enable_lora_bias=False, max_loras=1, max_lora_rank=16, lora_extra_vocab_size=256, lora_dtype='auto', long_lora_scaling_factors=None, max_cpu_loras=None, fully_sharded_loras=False, enable_prompt_adapter=False, max_prompt_adapters=1, max_prompt_adapter_token=0, device='auto', num_scheduler_steps=1, use_tqdm_on_load=True, multi_step_stream_outputs=True, scheduler_delay_factor=0.0, enable_chunked_prefill=None, speculative_config=None, model_loader_extra_config=None, ignore_patterns=[], preemption_mode=None, served_model_name=['x5-airun-whisper-prod'], qlora_adapter_name_or_path=None, show_hidden_metrics_for_version=None, otlp_traces_endpoint=None, collect_detailed_traces=None, disable_async_output_proc=False, scheduling_policy='fcfs', scheduler_cls='vllm.core.scheduler.Scheduler', override_neuron_config=None, override_pooler_config=None, compilation_config=None, kv_transfer_config=None, worker_cls='auto', worker_extension_cls='', generation_config='auto', override_generation_config=None, enable_sleep_mode=False, calculate_kv_scales=False, additional_config=None, enable_reasoning=False, reasoning_parser=None, disable_cascade_attn=False, disable_log_requests=False, max_log_len=None, disable_fastapi_docs=False, enable_prompt_tokens_details=False, enable_server_load_tracking=False, dispatch_function=<function ServeSubcommand.cmd at 0x7fd315df0400>)
WARNING 04-10 03:17:33 [arg_utils.py:1708] ['WhisperForConditionalGeneration'] is not supported by the V1 Engine. Falling back to V0. 
INFO 04-10 03:17:33 [api_server.py:246] Started engine process with PID 295
INFO 04-10 03:17:36 [__init__.py:239] Automatically detected platform cuda.
INFO 04-10 03:17:37 [llm_engine.py:242] Initializing a V0 LLM engine (v0.8.3) with config: model='/hf/whisper-large-v3-turbo', speculative_config=None, tokenizer='/hf/whisper-large-v3-turbo', skip_tokenizer_init=False, tokenizer_mode=auto, revision=None, override_neuron_config=None, tokenizer_revision=None, trust_remote_code=False, dtype=torch.float16, max_seq_len=448, download_dir=None, load_format=LoadFormat.AUTO, tensor_parallel_size=1, pipeline_parallel_size=1, disable_custom_all_reduce=False, quantization=None, enforce_eager=False, kv_cache_dtype=auto,  device_config=cuda, decoding_config=DecodingConfig(guided_decoding_backend='xgrammar', reasoning_backend=None), observability_config=ObservabilityConfig(show_hidden_metrics=False, otlp_traces_endpoint=None, collect_model_forward_time=False, collect_model_execute_time=False), seed=None, served_model_name=x5-airun-whisper-prod, num_scheduler_steps=1, multi_step_stream_outputs=True, enable_prefix_caching=None, chunked_prefill_enabled=False, use_async_output_proc=True, disable_mm_preprocessor_cache=False, mm_processor_kwargs=None, pooler_config=None, compilation_config={"splitting_ops":[],"compile_sizes":[],"cudagraph_capture_sizes":[256,248,240,232,224,216,208,200,192,184,176,168,160,152,144,136,128,120,112,104,96,88,80,72,64,56,48,40,32,24,16,8,4,2,1],"max_capture_size":256}, use_cached_outputs=True, 
INFO 04-10 03:17:38 [cuda.py:292] Using Flash Attention backend.
INFO 04-10 03:17:38 [parallel_state.py:957] rank 0 in world size 1 is assigned as DP rank 0, PP rank 0, TP rank 0
INFO 04-10 03:17:38 [model_runner.py:1110] Starting to load model /hf/whisper-large-v3-turbo...

Loading safetensors checkpoint shards:   0% Completed | 0/1 [00:00<?, ?it/s]

Loading safetensors checkpoint shards: 100% Completed | 1/1 [00:00<00:00,  1.56it/s]

Loading safetensors checkpoint shards: 100% Completed | 1/1 [00:00<00:00,  1.56it/s]

INFO 04-10 03:17:39 [loader.py:447] Loading weights took 0.71 seconds
INFO 04-10 03:17:39 [model_runner.py:1146] Model loading took 1.5077 GiB and 0.801870 seconds
INFO 04-10 03:17:40 [enc_dec_model_runner.py:278] Starting profile run for multi-modal models.

Issue was that for running whispr I needed more than 1 cpu. Created issue: [Bug]: Whisper reqires multi-cpu for profiling multi-modal model · Issue #16589 · vllm-project/vllm · GitHub