1

如何使用在 GCP 中的 Container Registry 中使用 Running this docker runlocal 进行私有映像工作正常:--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
                         )

4

2 回答 2

1

您是否检查过您是否缺少某种能力?

我在您发布的示例中看到他们还将其添加到security_context

'capabilities': {'add': ['SYS_ADMIN']}
于 2021-07-05T07:35:30.910 回答
0

我认为安全环境是好的方向。我相信您可以通过指定 pod_template_file 自定义 Pod 的各个方面 - 包括 securityContext

这需要 - 我认为使用 Airflow 2(我衷心推荐)或使用 cncf.kubernetes 反向端口提供程序。请注意,backport 已经很老了(我们在 4 个月前停止发布它们),并且 airflow 1.10 于 6 月 17 日结束生命,因此它甚至不会收到来自社区的安全修复,Airflow 2 路线更推荐

于 2021-07-05T16:18:07.423 回答