当前使用带有default_image_policy的KubernetesPodOperator (IfNotPresent)。将在不同的环境中使用静态标签ID。例如,在dev env中,标记为dev,在qa env中,标记为qa,依此类推。问题是,如果确实有新版本的镜像(不同的sha摘要),但标签ID相同。我可以将镜像策略更改为Always,但它将一直下载。Airflow DAG包含几个使用同一图像的KubernetesPodOperator的任务,我不希望每次运行任务时总是下载一个图像。
是否有镜像策略检查sha摘要(而不是标签ID)是否存在,如果不存在则将其下载?
发布于 2020-12-12 00:14:12
在容器图像定义中,您可以指定sha,以确保它提取/使用正确的sure。例如:
apiVersion: v1
kind: Pod
metadata:
name: ubuntu
spec:
containers:
- name: ubuntu
image: ubuntu@sha256:bc2f7250f69267c9c6b66d7b6a81a54d3878bb85f1ebb5f951c896d13e6ba537
command: [ "/bin/bash", "-c", "--" ]
args: [ "while true; do sleep 30; done;" ]或者对于Airflow KubernetesPodOperator,您可以使用:
example = KubernetesPodOperator(
image=ubuntu@sha256:bc2f7250f69267c9c6b66d7b6a81a54d3878bb85f1ebb5f951c896d13e6ba537,
task_id="example_task",
...
)https://stackoverflow.com/questions/63160941
复制相似问题