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.