在kubernetes中执行清单文件时获取标签验证错误
我正在尝试部署kubernetes清单文件,但由于下面的ValidationError而失败 错误:在kubernetes中执行清单文件时获取标签验证错误,kubernetes,manifest,elk,Kubernetes,Manifest,Elk,我正在尝试部署kubernetes清单文件,但由于下面的ValidationError而失败 错误: error validating data: ValidationError(Deployment.spec.selector): unknown field "app" in io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector; if you choose to ignore these errors, turn validation off
error validating data: ValidationError(Deployment.spec.selector): unknown field "app" in io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector; if you choose to ignore these errors, turn validation off with --validate=false
清单文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: elastickibana
spec:
replicas: 1
selector:
app: elastickibana
template:
metadata:
spec:
containers:
- name: elk
image: daniccan/kibana-plugin-tester:latest
imagePullPolicy: Always
ports:
- containerPort: 5601
- containerPort: 9200
env:
- name: KIBANA_VERSION
value: 6.8.2
- name: PLUGIN_FILE_NAME
value: kibana-c8-plugin-Alpha-0.0.1-Kibana-6.8.2.zip
- name: KIBANA_PLUGIN_PATH
value: /home/sreenivasa/Projects/c8/infrastructure/capsule8-sandbox
---
kind: Service
apiVersion: v1
metadata:
name: elk-service
labels:
app: elk-kibana
spec:
type: LoadBalancer
externalIPs:
- 10.0.2.15
selector:
name: elk-kibana
ports:
- port: 5601
name: elasticservice
ports:
- port: 9200
name: serving-http
请验证我的清单文件是否正确,如果我遗漏了什么,请告诉我 您的部署中缺少标签选择器,模板下的标签也在部署中丢失,您的服务标签选择器应该与这些标签匹配
apiVersion: apps/v1
kind: Deployment
metadata:
name: elastickibana
spec:
replicas: 1
selector:
matchlabels: <--missing this
app: elastickibana
template:
metadata:
labels: <--and this
app: elastickibana
spec:
containers:
- name: elk
image: daniccan/kibana-plugin-tester:latest
imagePullPolicy: Always
ports:
- containerPort: 5601
- containerPort: 9200
env:
- name: KIBANA_VERSION
value: 6.8.2
- name: PLUGIN_FILE_NAME
value: kibana-c8-plugin-Alpha-0.0.1-Kibana-6.8.2.zip
- name: KIBANA_PLUGIN_PATH
value: /home/sreenivasa/Projects/c8/infrastructure/capsule8-sandbox
apiVersion:apps/v1
种类:部署
元数据:
姓名:elastickibana
规格:
副本:1份
选择器:
匹配标签:您的部署中缺少标签选择器,模板下的标签也在部署中丢失,您的服务标签选择器应该与这些标签匹配
apiVersion: apps/v1
kind: Deployment
metadata:
name: elastickibana
spec:
replicas: 1
selector:
matchlabels: <--missing this
app: elastickibana
template:
metadata:
labels: <--and this
app: elastickibana
spec:
containers:
- name: elk
image: daniccan/kibana-plugin-tester:latest
imagePullPolicy: Always
ports:
- containerPort: 5601
- containerPort: 9200
env:
- name: KIBANA_VERSION
value: 6.8.2
- name: PLUGIN_FILE_NAME
value: kibana-c8-plugin-Alpha-0.0.1-Kibana-6.8.2.zip
- name: KIBANA_PLUGIN_PATH
value: /home/sreenivasa/Projects/c8/infrastructure/capsule8-sandbox
apiVersion:apps/v1
种类:部署
元数据:
姓名:elastickibana
规格:
副本:1份
选择器:
匹配标签:首先,只有在有标签时才需要使用选择器。您必须在部署元数据中定义标签,并在副本集中使用它
apiVersion: apps/v1
kind: Deployment
metadata:
name: elastickibana
labels:
app: elastickibana
spec:
replicas: 1
selector:
matchLabels:
app: elastickibana
template:
metadata:
labels:
app: elastickibana
spec:
containers:
- name: elk
image: daniccan/kibana-plugin-tester:latest
imagePullPolicy: Always
ports:
- containerPort: 5601
- containerPort: 9200
env:
- name: KIBANA_VERSION
value: 6.8.2
- name: PLUGIN_FILE_NAME
value: kibana-c8-plugin-Alpha-0.0.1-Kibana-6.8.2.zip
- name: KIBANA_PLUGIN_PATH
value: /home/sreenivasa/Projects/c8/infrastructure/capsule8-sandbox
---
kind: Service
apiVersion: v1
metadata:
name: elk-service
labels:
app: elastickibana
spec:
type: LoadBalancer
externalIPs:
- 10.0.2.15
selector:
app: elastickibana
ports:
- port: 5601
name: elasticservice
ports:
- port: 9200
name: serving-http
您的服务也不正确:它需要匹配pod的标签,如果不匹配,服务将不会分配给任何端点(pod IP)
参考资料:首先,只有当您有标签时才需要使用选择器。您必须在部署元数据中定义标签,并在副本集中使用它
apiVersion: apps/v1
kind: Deployment
metadata:
name: elastickibana
labels:
app: elastickibana
spec:
replicas: 1
selector:
matchLabels:
app: elastickibana
template:
metadata:
labels:
app: elastickibana
spec:
containers:
- name: elk
image: daniccan/kibana-plugin-tester:latest
imagePullPolicy: Always
ports:
- containerPort: 5601
- containerPort: 9200
env:
- name: KIBANA_VERSION
value: 6.8.2
- name: PLUGIN_FILE_NAME
value: kibana-c8-plugin-Alpha-0.0.1-Kibana-6.8.2.zip
- name: KIBANA_PLUGIN_PATH
value: /home/sreenivasa/Projects/c8/infrastructure/capsule8-sandbox
---
kind: Service
apiVersion: v1
metadata:
name: elk-service
labels:
app: elastickibana
spec:
type: LoadBalancer
externalIPs:
- 10.0.2.15
selector:
app: elastickibana
ports:
- port: 5601
name: elasticservice
ports:
- port: 9200
name: serving-http
您的服务也不正确:它需要匹配pod的标签,如果不匹配,服务将不会分配给任何端点(pod IP)
参考资料:“感谢您的更改”,在这些更改之后,我可以运行相同的程序。但是验证数据时出错:ValidationError(Deployment.spec.selector):io.k8s.apimachinery.pkg.API.meta.v1.LabelSelector中的未知字段“matchlabels”;如果选择忽略这些错误,请使用--validate=false“感谢您的更改”关闭验证,在这些更改之后,我可以运行相同的验证。但是验证数据时出错:ValidationError(Deployment.spec.selector):io.k8s.apimachinery.pkg.API.meta.v1.LabelSelector中的未知字段“matchlabels”;如果选择忽略这些错误,请使用--validate=false关闭验证
$ kubectl get ep elk-service
NAME ENDPOINTS AGE
elk-service 172.17.0.6:9200 10m