[英]Parsing k8s docker container json log correctly with Filebeat 7.9.3
[英]Allow multiple K8s resources in a JSON
我有一个 YAML 文件,其中包含多个资源部署和服务。
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: petclinic
name: petclinic
spec:
replicas: 1
selector:
matchLabels:
app: petclinic
strategy: {}
template:
metadata:
labels:
app: petclinic
spec:
containers:
- image: arey/springboot-petclinic
name: springboot-petclinic
resources: {}
ports:
- containerPort: 8080
status: {}
---
apiVersion: v1
kind: Service
metadata:
name: petclinic
spec:
type: LoadBalancer
selector:
app: petclinic
ports:
- port: 8080
targetPort: 8080
protocol: TCP
name: http
我正在用 JSON 创建一个类似的文件。 我能够使用 JSON 创建部署资源并成功部署,但是当我尝试包含服务资源时,它失败了。 任何关于我哪里出错的帮助将不胜感激。 以下是 JSON 的以下片段。
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"creationTimestamp": null,
"labels": {
"app": "petclinic"
},
"name": "petclinic"
},
"spec": {
"replicas": 2,
"selector": {
"matchLabels": {
"app": "petclinic"
}
},
"strategy": {},
"template": {
"metadata": {
"labels": {
"app": "petclinic"
}
},
"spec": {
"containers": [
{
"image": "arey/springboot-petclinic",
"name": "springboot-petclinic",
"resources": {},
"ports": [
{
"containerPort": 8080
}
]
}
]
}
}
},
"status": {}
}
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "petclinic"
},
"spec": {
"type": "LoadBalancer",
"selector": {
"app": "petclinic"
},
"ports": [
{
"port": 8080,
"targetPort": 8080,
"protocol": "TCP",
"name": "http"
]
}
}
}
您的服务资源中存在语法错误( ports
数组右括号)。 它应该是:
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "petclinic"
},
"spec": {
"type": "LoadBalancer",
"selector": {
"app": "petclinic"
},
"ports": [
{
"port": 8080,
"targetPort": 8080,
"protocol": "TCP",
"name": "http"
}
]
}
}
要使文件成为有效的 JSON 文件,您可以将定义包装在List
资源中:
{
"apiVersion": "v1",
"kind": "List",
"items": [
{
"apiVersion": "v1",
"kind": "Deployment",
...
},
{
"apiVersion": "v1",
"kind": "Service",
...
}
]
}
您可以先使用kubectl
应用 yaml,然后使用kubectl get deploy,services -o json > example.json
一个JSON正确的语法是有,
两种资源,而不是之间---
如您在使用YAML
...
// deployment
},
{
// service
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.