Ich habe mehrere Microservices auf Kubernetes läuft. Jeder Microservice ist ein Pod bestehend aus Microservice Container und Sidecar Container zur Protokollierung. Ich am Ende zu den Beiwagen für jeden Dienst zu definieren, und es ist ziemlich ausführliches:Wie vorformulierten von Kubernetes Beiwagen Behälter zu reduzieren?
apiVersion: v1
kind: ReplicationController
metadata:
name: thing-doer
spec:
replicas: 1
template:
metadata:
labels:
app: thing-doer
spec:
containers:
- name: thing-doer
image: myregistry/thingdoer
ports:
- containerPort: 8080
volumeMounts:
- mountPath: /logs
name: logs
- name: logger
image: myregistry/logger
volumeMounts:
- mountPath: /logs
name: logs
- mountPath: /logger-config
name: logger-config
volumes:
- name: logs
emptyDir: {}
- name: logger-config
configMap:
name: logger-configmap
items:
- key: config-yaml
path: config.yaml
ich am Ende mit den gleichen Schritten für jeden Micro wiederholen:
- erstellen Lügt-Volume
- erstellen Sie log-config Volumen von ConfigMap bevölkerten
- erstellen Logger Behälter
- Montage Log-Volume zu Logger Behälter
- Berg Protokollvolumenbehälter
- Berg log-config Volumen Micro Container Logger
Gibt es diese vorformulierten zu reduzieren und es irgendwie zusammensetzbare machen? Kann ich einfach angeben, dass dieser Pod "logbar" sein soll und die erforderlichen Schritte ausführen soll?
Das Problem dabei ist, dass jeder Dienst seine eigene Protokollierungskonfiguration hat. Wenn ich den Logger als Daemonset laufen denke ich, ich werde alle Logging-Config zu zentralisieren haben, die würde ich lieber nicht tun. –