Spring boot 在Kubernetes中验证部署错误
我尝试在Kubernetes集群中部署带有MySQL数据库的Spring boot 在Kubernetes中验证部署错误,spring-boot,kubernetes,kubectl,Spring Boot,Kubernetes,Kubectl,我尝试在Kubernetes集群中部署带有MySQL数据库的生产者服务应用程序。当我尝试部署producer-app时,抛出了以下验证错误 error: error validating "producer-deployment.yml": error validating data: apiVersion not set; if you choose to ignore these errors, turn validation off with --validate=fa
生产者服务应用程序。当我尝试部署producer-app
时,抛出了以下验证错误
error: error validating "producer-deployment.yml": error validating data: apiVersion not set; if you choose to ignore these errors, turn validation off with --validate=false
生产者部署.yml
apiVerion: v1
kind: Service
metadata:
name: producer-app
labels:
name: producer-app
spec:
ports:
-nodePort: 30163
port: 9090
targetPort: 9090
protocol: TCP
selector:
app: producer-app
type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: producer-app
spec:
selector:
matchLabels:
app: producer-app
replicas: 3
template:
metadata:
labels:
app: producer-app
spec:
containers:
- name: producer
image: producer:1.0
ports:
- containerPort: 9090
env:
- name: DB_HOST
valueFrom:
configMapKeyRef:
name: db-config
key: host
- name: DB_NAME
valueFrom:
configMapKeyRef:
name: db-config
key: name
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: db-user
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-user
key: password
我试图在配置文件中找到错误或打字错误,但仍然无法找到。producer deployment.yml文件有什么问题
- 请更改producer-deployment.yml中的第一行。字母s不见了
从
蜂王:v1
到
apiVersion:v1第一行有一个输入错误:“apiVerion”应该是“apiVersion”。多个问题:
它将是服务中的apiVersion:v1
而不是apivirion:v1
错误的规范端口
形成服务
。由于节点端口
、端口
、目标端口
和协议
作为列表列在端口
下,但您的构成不正确
您的服务yaml应如下所示:
apiVersion: v1
kind: Service
metadata:
name: producer-app
labels:
name: producer-app
spec:
ports:
- nodePort: 30163
port: 9090
targetPort: 9090
protocol: TCP
selector:
app: producer-app
type: NodePort
因此,您的总体yaml
应该是:
apiVersion: v1
kind: Service
metadata:
name: producer-app
labels:
name: producer-app
spec:
ports:
- nodePort: 30163
port: 9090
targetPort: 9090
protocol: TCP
selector:
app: producer-app
type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: producer-app
spec:
selector:
matchLabels:
app: producer-app
replicas: 3
template:
metadata:
labels:
app: producer-app
spec:
containers:
- name: producer
image: producer:1.0
ports:
- containerPort: 9090
env:
- name: DB_HOST
valueFrom:
configMapKeyRef:
name: db-config
key: host
- name: DB_NAME
valueFrom:
configMapKeyRef:
name: db-config
key: name
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: db-user
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-user
key: password
您的第一个错误(不止一个)只是将您指向应该开始调查的地方
error validating data: apiVersion not set;
正如您所知,kubernetes中的每个对象都有自己的apiVersion。
检查,特别是部件:
在要创建的Kubernetes对象的.yaml文件中,您将
需要为以下字段设置值:
apiVersion
-您正在使用哪个版本的Kubernetes API
创建此对象
种类
-要创建什么类型的对象
元数据
-帮助唯一标识对象的数据,包括
名称字符串、UID和可选名称空间
spec
-您想要什么状态
对于对象,对象等级库的精确格式与
每个Kubernetes对象,并包含特定于该对象的嵌套字段
反对
Kubernetes API参考可以帮助您找到spec
格式
对于可以使用Kubernetes创建的所有对象
你可以查一下
这些值是必需的,没有它们您将无法创建对象。所以,请下次仔细阅读你收到的错误