feat: 完成 issue #8 ⑥ K8s/Helm 部署底座 + 昇腾适配层

This commit is contained in:
2026-08-04 22:04:18 +08:00
parent 691a812fcf
commit e620d4937e
20 changed files with 1013 additions and 0 deletions
@@ -0,0 +1,72 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "iaop.fullname" . }}
labels:
{{- include "iaop.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: {{ .Values.rollingUpdate.maxUnavailable }}
maxSurge: {{ .Values.rollingUpdate.maxSurge }}
selector:
matchLabels:
{{- include "iaop.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "iaop.selectorLabels" . | nindent 8 }}
iaop.ai/inference-backend: {{ .Values.inference.backend }}
spec:
{{- if eq .Values.inference.backend "gpu" }}
# NVIDIA GPU(5090)节点选择:推理节点打标 nvidia.com/gpu=true
nodeSelector:
nvidia.com/gpu: "true"
{{- else }}
# 华为昇腾 NPU 节点选择:推理节点打标 ascend.com/npu=true
nodeSelector:
ascend.com/npu: "true"
{{- end }}
containers:
- name: inference
image: "{{ include "iaop.image" . }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- name: http
containerPort: {{ .Values.service.port }}
env:
- name: IAOP_BACKEND_CONFIG
value: /etc/iaop/backends.yaml
volumeMounts:
- name: backend-config
mountPath: /etc/iaop
readOnly: true
{{- if .Values.storage.enabled }}
- name: model-store
mountPath: /models
{{- end }}
livenessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
readinessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
resources:
{{- toYaml .Values.resources | nindent 12 }}
volumes:
- name: backend-config
configMap:
name: {{ include "iaop.fullname" . }}-backend
{{- if .Values.storage.enabled }}
- name: model-store
persistentVolumeClaim:
claimName: {{ include "iaop.fullname" . }}-models
{{- end }}