当前位置: 首页 > 知识库问答 >
问题:

应用程序完成后清理库伯内特斯上的Flink应用程序集群的最佳实践

甘君之
2023-03-14

我们正在Kubernetes上以应用程序模式运行Flink作业,问题是当作业完成/停止时,作业管理器容器将退出,但1。任务管理器2的部署。作业管理器服务3。除非我们运行kubectl delete来清理它,否则configMap仍然存在。

如果我们手动停止作业,这没什么大不了的,但是如果我们的Flink作业是一个批处理作业,稍后会完成,这意味着我们需要一个外部服务来保持监控作业管理器容器并在完成后清理其余资源,这不是很实用。

我想知道这里的最佳做法是什么?我们是否支持在Kubernetes上运行Flink批处理作业?如果是的话,那么Flink工作本身应该有一种方法来在完成后清理一切,对吗?

共有1个答案

越鸿才
2023-03-14

我假设您正在库伯内特斯上运行独立的Flink应用程序。在这种模式下,Flink不知道库伯内特斯集群。因此,用户必须利用一些外部工具(例如kubectl、k8s-运算符)来管理Flink集群的生命周期。这意味着您需要手动删除TaskManager部署、配置地图、服务。

我认为这种情况可以通过以下两种方式得到改善。

  1. 将TaskManager部署、configmaps和服务的所有者引用设置为JobManager作业。但是,您仍然需要在应用程序完成后手动删除Kubernetes作业
 类似资料:
  • 希望你们都好, 我目前正在尝试将awx操作符部署到Kubernetes集群上,但在从集群外部访问该服务时遇到了一些问题。 目前,我已设置了以下服务: 我确实设置了一个名为

  • 我有一个部署在远程Kubernetes集群上的Flink SessionCluster(根据文档),可在

  • 我正在运行一个kubernetes集群,其配置如下所示: 集群正在kind control plane docker容器内运行: 我还成功地部署了一个在 Pod 中运行 nodeJs 应用程序的部署,并且我已经公开了一个服务,用于通过入口控制器访问该应用程序,并且一切都按预期工作: 我正在使用WebStorm IDE开发在pod中运行的应用程序,我正在尝试配置远程调试器以连接到Kind集群中的应用

  • 据我所知,作业对象应该在一定时间后收获豆荚。但是在我的GKE集群(库伯内特斯1.1.8)上,“kubectl get pods-a”似乎可以列出几天前的豆荚。 所有这些都是使用乔布斯API创建的。 我确实注意到在使用 kubectl 删除作业后,pod 也被删除了。 我在这里主要担心的是,我将在批量作业中在集群上运行成千上万个pod,并且不想让内部待办系统过载。

  • 我正在尝试配置一个2节点库伯内特斯集群。首先,我试图在CentOS虚拟机上配置集群的主节点。我已经使用“kubeadm init--apiserver-广告地址=172.16.100.6--pod-network-cidr=10.244.0.0/16”初始化了集群,并将法兰绒网络部署到集群中。但是当我执行“kubectl获取节点”时,我得到以下输出---- 下面是“kubectl get pods