更新时间: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/真实业务运行命令> ...
父主题: 添加服务