首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让(气流)在不同的kubernetes集群上运行作业?

如何让(气流)在不同的kubernetes集群上运行作业?
EN

Stack Overflow用户
提问于 2019-09-02 10:00:25
回答 1查看 1.6K关注 0票数 1

我想让我的Composer环境(Google的托管Airflow服务)在一个不同的 kubernetes集群上启动pods。我该怎么做?

注意,composer在kubernetes集群上运行气流。该集群被认为是作曲家的“环境”。使用KubernetesPodOperator__的默认值,composer将在其自己的集群上调度豆荚。然而,在这种情况下,我有一个不同的kubernetes集群,我想在这个集群上运行这些吊舱。

我可以连接到工人吊舱,并在那里运行一个gcloud container clusters get-credentials CLUSTERNAME,但时不时这些吊舱会被回收,所以这不是一个持久的解决方案。

我注意到KubernetesPodOperator有一个in_cluster和一个cluster_context参数,这似乎很有用。我希望这样做是可行的:

代码语言:javascript
运行
复制
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: Invalid kube-config file. Expected object with name CONTEXTNAME in kube-config/contexts list

虽然如果我在工人荚中运行kubectl config get-contexts,我可以看到集群配置列出。

所以我不明白的是:

  • 如何确保我的其他kubernetes集群的上下文在工作荚上可用(或者应该在节点上)?我的作曲家环境?
  • 如果设置了上下文(就像我为测试目的手动做的那样),我如何告诉气流使用该上下文?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-02 13:52:36

有关这个,请查看GKEPodOperator

文档中的示例用法:

代码语言:javascript
运行
复制
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')
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57754956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档