Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让Google Cloud Composer(airflow)在不同的kubernetes集群上运行作业?_Kubernetes_Google Cloud Platform_Airflow_Google Cloud Composer - Fatal编程技术网

如何让Google Cloud Composer(airflow)在不同的kubernetes集群上运行作业?

如何让Google Cloud Composer(airflow)在不同的kubernetes集群上运行作业?,kubernetes,google-cloud-platform,airflow,google-cloud-composer,Kubernetes,Google Cloud Platform,Airflow,Google Cloud Composer,我想让我的Cloud Composer环境Google Cloud的托管Apache Airflow服务在另一个kubernetes集群上启动pods。我该怎么做 请注意,Cloud composer在kubernetes群集上运行气流。该集群被视为编写器环境。使用KubernetesPodOperator的默认值,composer将在自己的集群上调度POD。然而,在本例中,我有一个不同的kubernetes集群,我想在它上运行POD 我可以连接到worker pod并在那里运行gcloud容器

我想让我的Cloud Composer环境Google Cloud的托管Apache Airflow服务在另一个kubernetes集群上启动pods。我该怎么做

请注意,Cloud composer在kubernetes群集上运行气流。该集群被视为编写器环境。使用KubernetesPodOperator的默认值,composer将在自己的集群上调度POD。然而,在本例中,我有一个不同的kubernetes集群,我想在它上运行POD

我可以连接到worker pod并在那里运行gcloud容器clusters get credentials CLUSTERNAME,但pod偶尔会被回收,因此这不是一个持久的解决方案

我注意到,有一个in_cluster和一个cluster_context参数,这似乎很有用。我希望这会奏效:

pod=kubernetes_pod_运算符。KubernetesPodOperator task_id='my-task', name='name', in_cluster=False, cluster\u context='my\u cluster\u context', image='gcr.io/my/image:version' 但这会导致kubernetes.config.config_exception.ConfigException:无效的kube配置文件。kube配置/上下文列表中应为名为CONTEXTNAME的对象

虽然如果我在worker pod中运行kubectl config get context,我可以看到列出的集群配置

所以我没有弄明白的是:

如何确保我的另一个kubernetes集群的上下文在worker pod上可用,或者应该在节点上?我的作曲环境? 如果为测试目的而手动设置了上下文,我如何告诉airflow使用该上下文? 检查一下这个

文档中的用法示例:

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')
检查一下这个

文档中的用法示例:

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')

查看GKEPodOperator@真管用!请随意将此作为答案发布,以便我可以接受。酷!很高兴它有帮助!查看GKEPodOperator@真管用!请随意将此作为答案发布,以便我可以接受。酷!很高兴它有帮助!