我想让我的Cloud Composer环境(Google Cloud的托管Apache Airflow服务)在不同的kubernetes集群上启动pod。我应该怎么做?
请注意,云作曲家在kubernetes集群上运行气流。该集群被认为是作曲家“环境”。使用KubernetesPodOperator
的默认值,作曲家将在自己的集群上调度pod。但是在这种情况下,我有一个不同的kubernetes集群,我想在其上运行pod。
我可以连接到工作pod并在那里运行gcloud容器集群get-凭据CLUSTERNAME
,但pod偶尔会被回收,因此这不是一个持久的解决方案。
我注意到KubernetesPodOperator
有一个in_cluster
和一个cluster_context
参数,这似乎很有用。我希望这会起作用:
pod = kubernetes_pod_operator.KubernetesPodOperator(
task_id='my-task',
name='name',
in_cluster=False,
cluster_context='my_cluster_context',
image='gcr.io/my/image:version'
)
但这会导致kubernetes. config。config_exception.ConfigException:无效的库贝-config文件。库贝-config/上下文列表中名称为CONTEXTNAME的预期对象
尽管如果我在worker pod中运行kubectl config get-context ts
,我可以看到列出的集群配置。
所以我不明白的是:
查看GKEPodOperator。
文档中的示例用法:
operator = GKEPodOperator(task_id='pod_op',
project_id='my-project',
location='us-central1-a',
cluster_name='my-cluster-name',
name='task-name',
namespace='default',
image='perl')