Как запустить образ докеры с --privileged в KubernetesPodOperator на воздушном потоке
Как мне
docker run
частный образ из реестра контейнеров в GCP с использованием
--privileged
Запуск этого локально работает нормально:
docker run -it --privileged --entrypoint /bin/bash ${GKE_APP}
Я следил за этим, но ошибка все еще сохранялась.
Это мой DAG:
def process_backup_data(data_to_backup):
secret_file = Secret('volume', '/etc/secrets', 'my-secret')
task_env_vars = {'GOOGLE_APPLICATION_CREDENTIALS': "/etc/secrets/my-sa.json}
security_context = {
'privileged': True,
'allow_privilege_escalation': True,
'capabilities': {'add': ['SYS_ADMIN']}
}
return KubernetesPodOperator(image="asia.gcr.io/my-image:latest",
env_vars=task_env_vars,
cmds=["sh", "run-vpn-script.sh"],
arguments=[data_to_backup],
labels={"project": "my-project"},
name="my-project-backup-datasets",
task_id=f"backup_{task_id}",
dag=dag,
secrets=[secret_file],
image_pull_policy='Always',
security_context=security_context # HERE
)
2 ответа
Вы проверили, не упускаете ли вы какие-то возможности?
Я вижу, что в опубликованном вами примере они также добавляют это в
security_context
'capabilities': {'add': ['SYS_ADMIN']}
Я думаю, что контекст безопасности - хорошее направление. Я считаю, что вы можете настроить каждый аспект Pod, включая securityContext, указав pod_template_file
Для этого требуется - я думаю, с помощью Airflow 2 (который я настоятельно рекомендую) или с помощью поставщика резервных копий cncf.kubernetes. Обратите внимание, что бэкпорт уже довольно старый (мы перестали выпускать их 4 месяца назад), а воздушный поток 1.10 закончился с 17 июня, поэтому он не получит даже исправлений безопасности от сообщества, маршрут Airflow 2 больше, чем рекомендуется