kubernetes - 如果 SHA 摘要不同,则 Airflow KubernetesPodOperator 图像拉取策略拉取
问题描述
IfNotPresent
当前使用带有 default_image_policy ( ) 的KubernetesPodOperator 。将为不同的环境使用静态标签 ID。例如,在 dev env 中,标签将为dev
,在 qa env 中,标签将为qa
,依此类推。问题是是否真的有图像的新版本(不同的 sha 摘要)但标签 ID 相同。我可以将图像策略更改为,Always
但它会一直下载。Airflow DAG 包含多个使用相同映像的 KubernetesPodOperator 的任务,我不希望每次运行任务时都下载一个映像。
是否有图像策略检查sha
摘要(而不是标签 ID)是否存在,如果不存在则下载它?
解决方案
在容器图像定义中,您可以指定sha
以确保它提取/使用正确的图像。例如:
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",
...
)
推荐阅读
- html - 如何在jsPDF插件中渲染动态数据和css以将html转换为pdf
- logging - 在 AS400 中搜索多个假脱机文件
- java - java:从网络服务请求中获取我的战争清单文件
- php - PHP在入口点的nginx之后没有启动
- c# - 如何使用 Moq 模拟此代码以进行单元测试?
- wordpress - 自定义标题编辑 - PHP
- android - 如何在 webview Android 中显示 iframe
- liquibase - 具有 --excludeObjects 属性的 Liquibase diffChangeLog 命令不适用于列
- javascript - 如何根据共享位置将查询参数添加到 Navigator.share() 中的 URL?
- python - 错误 13。当我尝试读取 excel 文件时,jupiter notebook 中的权限错误