我在 K8s 集群中安装了 Jaeger 运算符,当我使用 annotation 时,它非常适用于 Deployment "sidecar.jaegertracing.io/inject": "true"
,如下所示:
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "helm-3-chart-template.fullname" . }}
labels:
{{- include "helm-3-chart-template.labels" . | nindent 4 }}
annotations:
"sidecar.jaegertracing.io/inject": "true"
spec:
# (...)
但是,我有一些 cronjobs 具有将 HTTPx 请求导出到 Jaeger 的工具,我尝试添加 jaeger sidecar 但从未启动。
我的配置是:
{{- if .Values.cronjobs.enabled -}}
{{- range $job, $val := .Values.cronjobs.jobs }}
{{- if semverCompare ">=1.21-0" $.Capabilities.KubeVersion.GitVersion }}
apiVersion: batch/v1
{{- else }}
apiVersion: batch/v1beta1
{{- end }}
kind: CronJob
metadata:
name: "{{ $.Values.fullnameOverride }}-{{ $job }}"
spec:
schedule: {{ $val.schedule | quote }} # Validate here: https://crontab.guru/
concurrencyPolicy: {{ $val.concurrencyPolicy | quote | default "Allow" }}
jobTemplate:
spec:
template:
metadata:
annotations:
"sidecar.jaegertracing.io/inject": {{ $val.injectJaegertracingSidecar | quote | default "true" }}
spec:
{{- with $.Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 12 }}
{{- end }}
containers:
- name: "{{ $.Values.fullnameOverride }}-{{ $job }}"
image: "{{ $.Values.image.repository }}:{{ $.Values.image.tag | default $.Chart.AppVersion }}"
imagePullPolicy: {{ $.Values.image.pullPolicy }}
command: ["{{ $val.command }}"]
args:
{{- range $val.args }}
- {{ . }}
{{- end }}
resources:
{{- toYaml $.Values.resources | nindent 14 }}
restartPolicy: {{ $val.restartPolicy | quote | default "OnFailure" }}
backoffLimit: {{ $val.backoffLimit | default 6 }}
ttlSecondsAfterFinished: {{ $val.ttlSecondsAfterFinished | default 60 }}
---
{{- end }}
{{- end }}
我的 Helm 价值观是:
cronjobs:
enabled: true
jobs:
a:
# Runs at every 5th minute.
schedule: "*/5 * * * *"
concurrencyPolicy: Forbid
restartPolicy: OnFailure
command: "python"
args:
- -OO
- app.py
injectJaegertracingSidecar: "true"