服务器错误 (BadRequest):创建 "pod.yaml" 时出错:
Error from server (BadRequest): error when creating "pod.yaml":
我在 运行
时收到以下错误
kubectl create -f pod.yaml
错误
Error from server (BadRequest): error when creating "pod.yaml": Pod in
version "applicant:v1" cannot be handled as a Pod: no kind "Pod" is
registered for version "applicant:v1"
minikube 已启动并且 运行ning 我什至尝试将其更改为 kind: Deployment
但我收到另一个错误消息:
error: unable to recognize "pod.yaml": no matches for /, Kind=Deployment
yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: customer-applicant
labels:
app: applicant-vue
spec:
replicas: 1
selector:
matchLabels:
app: applicant-vue
template:
metadata:
labels:
app: applicant-vue
spec:
containers:
- name: api-applicant
image: api-applicant
ports:
- containerPort: 8080
- containerPort: 8000
resources: {}
volumeMounts:
- mountPath: /usr/local/tomcat/logs
name: api-applicant-claim
# ekomi-import
- name: applicant-import
image: applicant-import
resources: {}
# cache
- name: cache
image: cache
resources:
limits:
memory: "536870912"
# storage
- name: storage
image: storage
ports:
- containerPort: 7000
- containerPort: 7001
- containerPort: 7199
- containerPort: 9042
- containerPort: 9160
resources: {}
# view
- name: view
image: view
ports:
- containerPort: 3000
resources: {}
volumes:
- name: applicant-claim
persistentVolumeClaim:
claimName: applicant-claim
# tomcat
- name: tomcat
image: tomcat
# node
- name: node
image: node
resources: {}
# openJdk
- name: node
- image: node
resources: {}
你这里有很多问题。我已经描述了其中的一些:
1.
pod.yaml
文件的结构是 Deployment
对象的结构。
2.
apiVersion
for Deployment
取决于 kubernetes 版本:
apps/v1beta1
对于 1.8.0 之前的版本
apps/v1beta2
从 1.8.0 开始到 1.9.0
apps/v1
对于从 1.9.0 开始的版本
因此,如果您将 pod.yaml
部署在最新的 kubernetes 集群上,它应该从以下位置启动:
apiVersion: apps/v1
kind: Deployment
3.
部分:
spec:
replicas: 1
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
template:
metadata:
labels:
app: product-ratings-vue
应改为:
spec:
replicas: 1
template:
metadata:
labels:
app: product-ratings-vue
4.
第二个 spec
块应该移动到与 spec.template.metadata
:
相同的水平
spec:
replicas: 1
template:
metadata:
labels:
app: product-ratings-vue
spec:
containers:
最后的deployment.yaml
是:
apiVersion: apps/v1
kind: Deployment
metadata:
name: customer-ratings
labels:
app: product-ratings-vue
spec:
replicas: 1
selector:
matchLabels:
app: product-ratings-vue
template:
metadata:
labels:
app: product-ratings-vue
spec:
containers:
- name: api-service
image: api-service
ports:
- containerPort: 8080
- containerPort: 8000
resources: {}
volumeMounts:
- mountPath: /usr/local/tomcat/logs
name: api-service-claim
# ekomi-import
- name: ekomi-import
image: ekomi-import
resources: {}
# cache
- name: cache
image: cache
resources:
limits:
memory: "536870912"
# storage
- name: storage
image: storage
ports:
- containerPort: 7000
- containerPort: 7001
- containerPort: 7199
- containerPort: 9042
- containerPort: 9160
resources: {}
# view
- name: view
image: view
ports:
- containerPort: 3000
resources: {}
# tomcat
- name: tomcat
image: tomcat
# node
- name: node
image: node
resources: {}
# openJdk
- name: node
image: node
resources: {}
volumes:
- name: api-service-claim
persistentVolumeClaim:
claimName: api-service-claim
我在 运行
时收到以下错误kubectl create -f pod.yaml
错误
Error from server (BadRequest): error when creating "pod.yaml": Pod in
version "applicant:v1" cannot be handled as a Pod: no kind "Pod" is
registered for version "applicant:v1"
minikube 已启动并且 运行ning 我什至尝试将其更改为 kind: Deployment
但我收到另一个错误消息:
error: unable to recognize "pod.yaml": no matches for /, Kind=Deployment
yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: customer-applicant
labels:
app: applicant-vue
spec:
replicas: 1
selector:
matchLabels:
app: applicant-vue
template:
metadata:
labels:
app: applicant-vue
spec:
containers:
- name: api-applicant
image: api-applicant
ports:
- containerPort: 8080
- containerPort: 8000
resources: {}
volumeMounts:
- mountPath: /usr/local/tomcat/logs
name: api-applicant-claim
# ekomi-import
- name: applicant-import
image: applicant-import
resources: {}
# cache
- name: cache
image: cache
resources:
limits:
memory: "536870912"
# storage
- name: storage
image: storage
ports:
- containerPort: 7000
- containerPort: 7001
- containerPort: 7199
- containerPort: 9042
- containerPort: 9160
resources: {}
# view
- name: view
image: view
ports:
- containerPort: 3000
resources: {}
volumes:
- name: applicant-claim
persistentVolumeClaim:
claimName: applicant-claim
# tomcat
- name: tomcat
image: tomcat
# node
- name: node
image: node
resources: {}
# openJdk
- name: node
- image: node
resources: {}
你这里有很多问题。我已经描述了其中的一些:
1.
pod.yaml
文件的结构是 Deployment
对象的结构。
2.
apiVersion
for Deployment
取决于 kubernetes 版本:
apps/v1beta1
对于 1.8.0 之前的版本apps/v1beta2
从 1.8.0 开始到 1.9.0apps/v1
对于从 1.9.0 开始的版本
因此,如果您将 pod.yaml
部署在最新的 kubernetes 集群上,它应该从以下位置启动:
apiVersion: apps/v1
kind: Deployment
3. 部分:
spec:
replicas: 1
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
template:
metadata:
labels:
app: product-ratings-vue
应改为:
spec:
replicas: 1
template:
metadata:
labels:
app: product-ratings-vue
4.
第二个 spec
块应该移动到与 spec.template.metadata
:
spec:
replicas: 1
template:
metadata:
labels:
app: product-ratings-vue
spec:
containers:
最后的deployment.yaml
是:
apiVersion: apps/v1
kind: Deployment
metadata:
name: customer-ratings
labels:
app: product-ratings-vue
spec:
replicas: 1
selector:
matchLabels:
app: product-ratings-vue
template:
metadata:
labels:
app: product-ratings-vue
spec:
containers:
- name: api-service
image: api-service
ports:
- containerPort: 8080
- containerPort: 8000
resources: {}
volumeMounts:
- mountPath: /usr/local/tomcat/logs
name: api-service-claim
# ekomi-import
- name: ekomi-import
image: ekomi-import
resources: {}
# cache
- name: cache
image: cache
resources:
limits:
memory: "536870912"
# storage
- name: storage
image: storage
ports:
- containerPort: 7000
- containerPort: 7001
- containerPort: 7199
- containerPort: 9042
- containerPort: 9160
resources: {}
# view
- name: view
image: view
ports:
- containerPort: 3000
resources: {}
# tomcat
- name: tomcat
image: tomcat
# node
- name: node
image: node
resources: {}
# openJdk
- name: node
image: node
resources: {}
volumes:
- name: api-service-claim
persistentVolumeClaim:
claimName: api-service-claim