默认情况下是否可以有一个带有特权Pod的Kubernetes集群?

时间:2019-02-01 06:54:53

标签: kubernetes airflow

我正在通过Airflow中的KubernetesPodOperator创建一个广告连播。该Pod应该使用/mnt/bucket将Google云端存储安装到gcsfuse。为此,必须使用securityContext参数来启动Pod,以使其可以成为“特权”。

通过Airflow传递securityContext参数是currently not possible。有另一种方法可以解决此问题?也许通过在Pod启动之前设置“默认” securityContext?我已经考虑过创建PodSecurityPolicy,但是还没有找到解决方法。

2 个答案:

答案 0 :(得分:2)

一个变异入场控制器将允许您执行以下操作:https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#mutatingadmissionwebhook

ibm-cloud团队对此发表了一篇文章,但是我从未尝试编写过这样的文章:https://medium.com/ibm-cloud/diving-into-kubernetes-mutatingadmissionwebhook-6ef3c5695f74,而GiantSwarm的人们使用他们的脾气暴躁的准入控制器有一个端到端的示例:{{3 }}

我将使用标签,注释或图像,来标识由Airflow发射的Pod,然后仅对其进行突变以将securityContext:设置为Pod即可。 >

答案 1 :(得分:2)

与Mutation Admission Controller分开,还可以将DaemonSet部署到将/mnt/bucket安装到主机文件系统上的群集中,并且Airflow Pod将使用{"name": "bucket", "hostPath": {"path": "/mnt/bucket"}}作为其{{1} }(假设它可以正常工作)将减少 loadload 的输入,并且也不会招致Mutation Admission Controller破坏您的集群并使Pod神秘地变异的严重风险