如何允许访问Airflow中的计算引擎VM(Google Cloud Composer)

如何允许访问Airflow中的计算引擎VM(Google Cloud Composer),airflow,google-kubernetes-engine,google-cloud-composer,Airflow,Google Kubernetes Engine,Google Cloud Composer,我尝试以这种模式运行bash命令sshuser@host“我的bash命令”在气流中使用bash操作符。这在本地起作用,因为我的公钥在目标机器中 但是我想在GoogleCloudComposer中运行这个命令,它是Airflow+GoogleKubernetes引擎。据我所知,Airflow的核心程序在3个吊舱中运行,根据此模式命名Airflow-worker-xxxxxxxx-yyyy 一个简单的解决方案是为每个pod创建一个ssh密钥,并将其公钥添加到Compute Engine中的目标机器

我尝试以这种模式运行bash命令
sshuser@host“我的bash命令”
在气流中使用bash操作符。这在本地起作用,因为我的公钥在目标机器中

但是我想在GoogleCloudComposer中运行这个命令,它是Airflow+GoogleKubernetes引擎。据我所知,Airflow的核心程序在3个吊舱中运行,根据此模式命名
Airflow-worker-xxxxxxxx-yyyy

一个简单的解决方案是为每个pod创建一个ssh密钥,并将其公钥添加到Compute Engine中的目标机器。这个解决方案一直有效到今天,不知怎么的,我的3个pod都变了,所以我的ssh密钥不见了。这绝对不是最好的解决办法

我有两个问题:

  • 为什么Google cloud composer更改了我的播客
  • 我如何解决我的问题

POD重新启动不是作曲家的具体要求:

豆荚不打算被视为持久的实体

所以一般来说,POD可以因为不同的原因重新启动,所以您不应该依赖于对它们所做的任何更改

我如何解决我的问题


考虑到Cloud Composer创建了一个云存储桶并将其链接到您的环境,您可以解决这个问题。您可以从任何工作人员处访问此存储桶的不同文件夹。因此,您可以将密钥(只能使用一个密钥对)存储在“gs://bucket name/data”中,您可以通过映射的目录“/home/afflow/gcs/data”访问该目录

映射目录使用gcsfuse将远程存储桶装载到文件夹中,但我无法将ssh密钥对权限更改为700,我认为因为gcsfuse不允许此操作,有没有办法做到这一点?您可以在bash_命令中增加一些复杂性,在本地复制文件,并根据需要更改权限。