【发布时间】:2016-06-03 01:37:52
【问题描述】:
我有几个在 Kubernetes 上运行的微服务。每个微服务都是一个 pod,由微服务容器和 sidecar 容器组成,用于处理日志记录。我最终不得不为每个服务定义 sidecar,这非常冗长:
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
我最终不得不为每个微服务重复这些相同的步骤:
- 创建日志卷
- 创建从 ConfigMap 填充的日志配置卷
- 创建记录器容器
- 将日志卷装载到记录器容器
- 将日志卷挂载到微服务容器
- 将日志配置卷装载到记录器容器
有没有什么可以减少这个样板并以某种方式使其可组合?我可以指定我希望这个 pod 是“可记录的”并让它执行我需要的步骤吗?
【问题讨论】:
标签: kubernetes