У меня есть кластер с многочисленными службами, работающими в виде модулей, из которых я хочу получать журналы с помощью fluentd. Все службы показывают журналы при выполнении kubectl logs service
. Однако некоторые журналы не отображаются в этих папках:
- / var / журнал
- / вар / журнал / контейнеры
- / var / log / pods
хотя другие контейнеры есть. Контейнеры, которые там есть, создаются как задание Cron или как диаграмма Helm, как установка MongoDB.
Контейнеры, которые не регистрируются, созданы мной с помощью файла развертывания, например:
kind: Deployment
metadata:
namespace: {{.Values.global.namespace | quote}}
name: {{.Values.serviceName}}-deployment
spec:
replicas: {{.Values.replicaCount}}
selector:
matchLabels:
app: {{.Values.serviceName}}
template:
metadata:
labels:
app: {{.Values.serviceName}}
annotations:
releaseTime: {{ dateInZone "2006-01-02 15:04:05Z" (now) "UTC"| quote }}
spec:
containers:
- name: {{.Values.serviceName}}
# local: use skaffold, dev: use passed tag, test: use released version
image: {{ .Values.image }}
{{- if (eq .Values.global.env "dev") }}:{{ .Values.imageConfig.tag}}{{ end }}
imagePullPolicy: {{ .Values.global.imagePullPolicy }}
envFrom:
- configMapRef:
name: {{.Values.serviceName}}-config
{{- if .Values.resources }}
resources:
{{- if .Values.resources.requests }}
requests:
memory: {{.Values.resources.requests.memory}}
cpu: {{.Values.resources.requests.cpu}}
{{- end }}
{{- if .Values.resources.limits }}
limits:
memory: {{.Values.resources.limits.memory}}
cpu: {{.Values.resources.limits.cpu}}
{{- end }}
{{- end }}
imagePullSecrets:
- name: {{ .Values.global.imagePullSecret }}
restartPolicy: {{ .Values.global.restartPolicy }}
{{- end }}
и CMD Dockerfile, например: CMD ["node", "./bin/www"]
Одно из предположений может заключаться в том, что CMD не передает канал в STDOUT, но почему тогда журналы отображаются в kubectl logs
?