【发布时间】:2020-01-14 01:27:18
【问题描述】:
我有一个包含多个命名空间的 Kubernetes 集群。每个客户端都有一个命名空间,这就是我们分离客户端数据的方式。
我想为每个客户端运行一个包含 DAG 的气流集群。但是有没有办法使用 Kubernetes 执行器,以便它根据某些参数在不同的命名空间上执行每个任务? 我注意到 Kubernetes 执行器只有一个命名空间参数。
【问题讨论】:
标签: kubernetes airflow
我有一个包含多个命名空间的 Kubernetes 集群。每个客户端都有一个命名空间,这就是我们分离客户端数据的方式。
我想为每个客户端运行一个包含 DAG 的气流集群。但是有没有办法使用 Kubernetes 执行器,以便它根据某些参数在不同的命名空间上执行每个任务? 我注意到 Kubernetes 执行器只有一个命名空间参数。
【问题讨论】:
标签: kubernetes airflow
Kubernetes 目前不支持 --namespace 参数的多个命名空间。有关此的更多信息是here 和here。
我认为跨多个命名空间的单个操作会很复杂,并且可能会产生不一致的结果和竞争条件。
kubectl get --all-namespaces 从所有命名空间获取资源。
一个操作可以在每个命名空间中以编程方式连续重复运行,如下所示:
kubectl get ns -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | xargs -n 1 -I % kubectl get pods -n=%
kubectl get ns -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | xargs -n 1 -I % kubectl get all -n=%
【讨论】: