默认情况下,是否可能有一个带有特权POD的Kubernetes集群?

默认情况下,是否可能有一个带有特权POD的Kubernetes集群?,kubernetes,airflow,Kubernetes,Airflow,我正在通过气流中的KubernetesPodOperator创建一个吊舱。此pod应使用gcsfuse将谷歌云存储装载到/mnt/bucket。为此,pod需要使用securityContext参数启动,以便它可以成为“特权” 它用于通过气流传递securityContext参数。有没有其他办法解决这个问题?也许在POD启动之前设置一个“默认”securityContext?我已经考虑过创建一个PodSecurityPolicy,但还没有找到一个方法。一个变异的准入控制器将允许您这样做: ibm

我正在通过气流中的
KubernetesPodOperator
创建一个吊舱。此pod应使用
gcsfuse
将谷歌云存储装载到
/mnt/bucket
。为此,pod需要使用
securityContext
参数启动,以便它可以成为“特权”


它用于通过气流传递securityContext参数。有没有其他办法解决这个问题?也许在POD启动之前设置一个“默认”securityContext?我已经考虑过创建一个
PodSecurityPolicy
,但还没有找到一个方法。

一个变异的准入控制器将允许您这样做:

ibm云团队有一篇关于它的帖子,但我从未尝试过写一篇:GiantSwarm的员工有一个端到端的例子,使用他们脾气暴躁的准入控制器:


我会使用标签或注释,或者甚至图像来识别由气流启动的吊舱,然后仅对它们进行变异,以将吊舱上的
securityContext:
设置为您想要的方式。

与变异的准入控制器分离,还可以在集群中部署一个守护程序,将
/mnt/bucket
装载到主机文件系统上,Airflow Pod将使用
{“name”:“bucket”,“hostPath”:{“path”:“/mnt/bucket”}}
作为它们的
卷:
,假设它可以工作的话,这将是一个boatload更少的类型,同时也不存在变异的准入控制器破坏集群并导致POD神秘变异的严重风险

在集群级别,您需要配置一个自定义PSP,允许允许允许的特权容器,但气流中无法通过此参数。尽管这听起来是一个非常好的主意,执行此操作后,我收到以下消息:
创建装载源路径“/mnt/bucket”时出错:mkdir/mnt/bucket:read-only file system
,这将导致
ContainerCannotRun
。这听起来像是一个单独的问题,因为我们需要一些journalctl输出,或者知道是否可以手动运行docker-v/mnt/bucket:/mnt/bucket-it-busybox-ls-la/mnt,等等。魔鬼在于细节