更新时间:2024-06-24 GMT+08:00
如何为普通任务(Job)和定时任务(CronJob)类型负载注入sidecar
前置条件
- 确认使用ASM1.15.5-r3及以上版本创建网格。
- 默认场景下,对普通任务(Job)和定时任务(CronJob)类型负载创建的Pod不进行sidecar注入,如果需要注入请在创建工作负载时,设置高级参数“标签与注解> Pod标签”sidecar.istio.io/inject: 'true'。如下图:

参考CronJob示例:
kind: CronJob
apiVersion: batch/v1
metadata:
name: mycronjob
namespace: default
spec:
schedule: '*/1 * * * *'
jobTemplate:
spec:
template:
metadata:
creationTimestamp: null
labels:
app: mycronjob
sidecar.istio.io/inject: 'true'
...
- 要使用Job/CronJob类型的话,需要在容器中使用指令退出sidecar。
任务完成后sidecar退出
通过调用istio-proxy接口curl -sf -XPOST http://127.0.0.1:15000/quitquitquit,在Job工作完成后退出istio-proxy。
参考CronJob示例:
kind: CronJob
apiVersion: batch/v1
metadata:
name: mycronjob
namespace: default
spec:
schedule: '*/1 * * * *'
concurrencyPolicy: Forbid
suspend: false
jobTemplate:
metadata:
creationTimestamp: null
spec:
template:
metadata:
creationTimestamp: null
labels:
app: cronjob1
sidecar.istio.io/inject: 'true'
version: v1
spec:
containers:
- name: mycronjob-1
image: 'busybox:latest'
command:
- /bin/bash
- '-c'
args:
- |
trap "curl --max-time 2 -s -f -XPOST http://127.0.0.1:15000/quitquitquit" EXIT
while ! curl -s -f http://127.0.0.1:15020/healthz/ready; do sleep 1;done
sleep 2
date; echo Hello from the Kubernetes cluster<Your Job command/真实业务运行命令>
...
父主题: 添加服务