error:error parsing yaml , converting YAML to JSON: yaml: line 20: did not find expected '-' indicator Kubernetes
error:error parsing yaml , converting YAML to JSON: yaml: line 20: did not find expected '-' indicator Kubernetes
大家好我正在尝试在 Kubernetes 中部署 运行s mongoDB 的 nodejs 应用程序。为了实现这一点,我创建了一个名为 k8s 的文件夹,在该文件夹中我有 2 个文件 - deployment_nodejs.yaml 和 deployment_mongo.yaml。在 运行 命令 kubectl apply -f k8s 之后。
我成功创建了 'deployment_nodejs.yaml',但 部署另一个失败 。错误说明如下:'error: error parsing k8s/deployment_mongo.yaml: error converting YAML to JSON: yaml: line 20: did not find expected '-'指示器'。
我意识到错误可能是 ports 命令,尽管我不明白为什么,因为在我看来我做错了什么。希望你能帮我修复这个错误。
deployment_mongo.yaml 文件的代码:
kind: PersistentVolumeClaim
metadata:
name: mongo-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 256Mi
---
apiVersion: v1
kind: Service
metadata:
name: mongo
spec:
selector:
app: mongo
ports:
- port: 27017
targetPort: 27017
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongo
spec:
selector:
matchLabels:
app: mongo
template:
metadata:
labels:
app: mongo
specs:
containers:
- name: mongo
image: 3.6.23-xenial
ports:
- containerPort: 27017
volumeMounts:
- name: storage
mountPath: /data/db
volumes:
- name: storage
PersistentVolumeClaim:
claimName: mongo-pvc
第 20 行 spce:
,而不是 spec:
在部署中,将specs:
更改为spec:
已尝试根据给定的 YAML 生成资源,以下是发现的问题。
api-version 未在第一行提及,volumes 和 volumeMounts 在 Deployment Yaml 中未正确缩进。 PersistentVolumeClaim(大写的 P 应该是 persistentVolumeClaim),claimName 没有缩进。修复它们或使用下面的清单,您应该可以开始了。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mongo-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 256Mi
---
apiVersion: v1
kind: Service
metadata:
name: mongo
spec:
selector:
app: mongo
ports:
- port: 27017
targetPort: 27017
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongo
spec:
selector:
matchLabels:
app: mongo
template:
metadata:
labels:
app: mongo
spec:
containers:
- name: mongo
image: 3.6.23-xenial
ports:
- containerPort: 27017
volumeMounts:
- name: storage
mountPath: /data/db
volumes:
- name: storage
persistentVolumeClaim:
claimName: mongo-pvc
大家好我正在尝试在 Kubernetes 中部署 运行s mongoDB 的 nodejs 应用程序。为了实现这一点,我创建了一个名为 k8s 的文件夹,在该文件夹中我有 2 个文件 - deployment_nodejs.yaml 和 deployment_mongo.yaml。在 运行 命令 kubectl apply -f k8s 之后。 我成功创建了 'deployment_nodejs.yaml',但 部署另一个失败 。错误说明如下:'error: error parsing k8s/deployment_mongo.yaml: error converting YAML to JSON: yaml: line 20: did not find expected '-'指示器'。 我意识到错误可能是 ports 命令,尽管我不明白为什么,因为在我看来我做错了什么。希望你能帮我修复这个错误。
deployment_mongo.yaml 文件的代码:
kind: PersistentVolumeClaim
metadata:
name: mongo-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 256Mi
---
apiVersion: v1
kind: Service
metadata:
name: mongo
spec:
selector:
app: mongo
ports:
- port: 27017
targetPort: 27017
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongo
spec:
selector:
matchLabels:
app: mongo
template:
metadata:
labels:
app: mongo
specs:
containers:
- name: mongo
image: 3.6.23-xenial
ports:
- containerPort: 27017
volumeMounts:
- name: storage
mountPath: /data/db
volumes:
- name: storage
PersistentVolumeClaim:
claimName: mongo-pvc
第 20 行 spce:
,而不是 spec:
在部署中,将specs:
更改为spec:
已尝试根据给定的 YAML 生成资源,以下是发现的问题。 api-version 未在第一行提及,volumes 和 volumeMounts 在 Deployment Yaml 中未正确缩进。 PersistentVolumeClaim(大写的 P 应该是 persistentVolumeClaim),claimName 没有缩进。修复它们或使用下面的清单,您应该可以开始了。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mongo-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 256Mi
---
apiVersion: v1
kind: Service
metadata:
name: mongo
spec:
selector:
app: mongo
ports:
- port: 27017
targetPort: 27017
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongo
spec:
selector:
matchLabels:
app: mongo
template:
metadata:
labels:
app: mongo
spec:
containers:
- name: mongo
image: 3.6.23-xenial
ports:
- containerPort: 27017
volumeMounts:
- name: storage
mountPath: /data/db
volumes:
- name: storage
persistentVolumeClaim:
claimName: mongo-pvc