我有一个简单的 helm 图表,它将通过 docker 桌面将应用程序部署到我的 kubernetes 本地副本。如果我使用 kubectl 一次部署一个 yaml 文件,一切都会正常工作。但是,当我尝试创建 helm 图表以方便部署时,出现以下错误。
helm 安装演示 WebApi
错误:无法从发布清单构建 kubernetes 对象:验证“”时出错:验证数据时出错:apiVersion 未设置
该错误似乎表明我在一个或多个 YAML 文件中缺少 apiVersion 映射。但是,我的所有文件都有似乎正确的 apiVersions。
文件夹结构
charts
└── WebApi
├── Chart.yaml
└── templates
├── deployment.yaml
├── ingress.yaml
└── services.yaml
Chart.yaml
apiVersion: v2
version: 0.1.0
name: WebApi
appVersion: "1.0"
description: A Helm Chart for WebApi
type: application
部署.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo-api
labels:
app: demo
tier: demo-api
spec:
selector:
matchLabels:
app: demo
replicas: 3
template:
metadata:
labels:
app: demo
spec:
containers:
- name: demo
image: demo/image
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
protocol: TCP
resources:
limits:
memory: "128Mi" #128 MB
cpu: "200m" #200 millicpu (.2 cpu or 20% of the cpu)
livenessProbe:
httpGet:
path: /swagger/index.html
port: 80
initialDelaySeconds: 15
timeoutSeconds: 2
periodSeconds: 5
failureThreshold: 1
readinessProbe:
httpGet:
path: /swagger/index.html
port: 80
入口.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: demo
spec:
rules:
- host: demo.com
http:
paths:
- backend:
serviceName: demo
servicePort: 80
服务.yaml
apiVersion: v1
kind: Service
metadata:
name: demo
labels:
app: demo
spec:
type: ClusterIP
selector:
app: demo
ports:
- name: http
port: 80
targetPort: 80
正如您所看到的,我的所有 YAML 文件都有所需的 apiVersion 映射,但错误仍然表明它们丢失。为了使其按预期工作,我需要进行哪些更正?