任务

任务
管理集群
Debug DNS 方案
Enabling Service Topology (EN)
IP Masquerade Agent 用户指南
Kubernetes 云管理控制器
Safely Drain a Node while Respecting the PodDisruptionBudget (EN)
为 Kubernetes 运行 etcd 集群
为系统守护进程预留计算资源
为节点发布扩展资源
使用 CoreDNS 进行服务发现
使用 KMS 提供商进行数据加密
使用 Kubernetes API 访问集群
关键插件 Pod 的调度保证
启用端点切片
命名空间演练
在 Kubernetes 集群中使用 NodeLocal DNSCache
在 Kubernetes 集群中使用 sysctl
在实时集群上重新配置节点的 Kubelet
声明网络策略
开发云控制器管理器
控制节点上的 CPU 管理策略
控制节点上的拓扑管理策略
搭建高可用的 Kubernetes Masters
改变默认 StorageClass
更改 PersistentVolume 的回收策略
自定义 DNS 服务
访问集群上运行的服务
通过命名空间共享集群
通过配置文件设置 Kubelet 参数
配置 API 对象配额
配置多个调度器
配置资源不足时的处理方式
限制存储消耗
集群 DNS 服务自动伸缩
集群安全
集群管理
静态加密 Secret 数据
用插件扩展 kubectl
管理巨页(HugePages)
调度 GPUs

Edit This Page

联邦 Job

已过时

强烈建议不要使用联邦 v1 版本联邦 v1 版本从未达到 GA 状态,且不再处于积极开发阶段。文档仅作为历史参考。

有关更多信息,请参阅预期的替代品 Kubernetes 联邦 v2 版本

本指南解释了如何在联邦控制平面中使用 job。

联邦控制平面中的一次性任务(在本指南中称为“联邦一次性任务”)类似于传统的 Kubernetes 一次性任务,并且提供相同的功能。 在联邦控制平面中创建 job 可以确保在已注册的集群中存在所需的并行性和完成数。

准备开始

  • 本指南假设您已安装有一个正在运行的 Kubernetes 集群联邦。如果没有,那么请转到 联邦管理指南,了解如何启动联邦集群(或者让集群管理员为您执行此操作)。 其他教程,例如 Kelsey Hightower 的联邦 Kubernetes 教程, 也可能帮助您创建联邦 Kubernetes 集群。

  • 你需要具备基本的 Kubernetes 的工作知识,特别是 job

创建一个联邦 job

用于联邦 job 的 API 与用于传统 Kubernetes job 的 API 完全兼容。您可以通过向联邦 apiserver 发送请求来创建 job。

你可以使用 kubectl 来运行:

kubectl --context=federation-cluster create -f myjob.yaml

--context=federation-cluster 参数告诉 kubectl 将请求提交到联邦 API 服务器,而不是发送到 Kubernetes 集群。

一旦创建了联邦 job,联邦控制平面将在所有底层 Kubernetes 集群中创建一个 job。 你可以通过检查每个集群底层来验证这一点,例如:

kubectl --context=gce-asia-east1a get job myjob

前面的示例假设你的客户端中为该区域中的集群配置了一个名为 gce-asia-east1a 的上下文。

集群底层中的 job 与联邦 job 匹配,但并行性和完成数不匹配。 联邦控制平面确保每个集群中的并行性和完成数之和与联合作业中所需的并行度和完成数匹配。

将 job 任务分散到集群底层中

默认情况下,并行性和完成数在所有底层集群中平均分布。例如: 如果你有 3 个已注册的集群,并且创建了一个联邦 job spec.parallelism = 9spec.completions = 18,那么 3 个集群中的每个 job 都有 spec.parallelism = 3spec.completions = 6。 要修改每个集群中的并行性和完成数,可以指定 ReplicaAllocationPreferences 作为 federation.kubernetes.io/job-preferences 联邦 job 上的 key 的注释。

更新联邦 job

可以像更新 Kubernetes job 一样更新联邦 job;但是,对于联邦 job,必须将请求发送到联邦 API 服务器,不是发送到指定的 Kubernetes 集群。 联邦控制平面确保无论何时更新联邦 job,它都会更新所有集群底层中的相应 job 以匹配它。

如果您的更新包含并行性和完成数的更改,则联邦控制平面将更改集群底层中的并行性和完成数, 确保它们的总和仍然等于联邦 job 中所需的并行性和完成数。

删除联邦 job

可以删除联邦 job,就像删除 Kubernetes job 一样;但是,对于联邦 job,必须将请求发送到联邦 API 服务器,不是发送到指定的 Kubernetes 集群。

例如,使用 kubectl:

kubectl --context=federation-cluster delete job myjob
注意:

删除联邦作业不会从基础集群中删除相应的 job。 您必须手动删除基础 job。

反馈