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

EKS上的Flink群集

葛奇
2023-03-14

我对Flink和库伯内特斯是新手。我计划创建一个flink流作业,将数据从文件系统流到Kafka。

使用工作正常的flink job jar(本地测试)。现在我正试图在kubernetes主持这项工作,并希望在AWS中使用EKS。

我已经阅读了有关如何设置flink群集的官方flink文档。https://ci.apache.org/projects/flink/flink-docs-release-1.5/ops/deployment/kubernetes.html

我尝试使用mini kube在本地设置它,并启动了会话集群并提交了工作正常的工作。

我的问题:1)在两个选项Job cluster和session cluster中,由于作业是流式作业,因此应保持对文件系统的监视,并且当任何新文件传入时,应将其流式传输到目标,在这种情况下我可以使用Job cluster吗?根据文档,作业集群是执行作业并在作业完成后终止的东西,如果作业在文件夹上有监视器,它是否完成过?

2) 我有一个构建flink jar的maven项目,想知道在生产中使用这个jar来旋转会话/作业集群的理想方法吗?正常的CI CD流程是什么?我是否应该首先构建一个会话集群,并在需要时提交作业?还是用构建好的jar来构建作业集群?

共有1个答案

艾文斌
2023-03-14

首先,您提供的链接是针对Flink 1.5的。如果你是从新开始,我建议使用Flink 1.9或即将推出的1.10。

对于您的问题:

1) 具有文件监视器的作业从不终止。它无法知道何时不再有文件到达,因此您必须手动取消它。工作集群可以做到这一点。

2) 对此没有明确的答案,也不是针对Flink的。每个人都有不同的解决方案,但有不同的缺点。

我的目标是一种半自动的方法,其中所有内容都是自动的,但您需要显式地按下deploy按钮(而不仅仅是git按钮)。通常,这些CI/CD管道首先部署在测试集群上,然后进行冒烟测试,然后才允许在生产环境中部署。

如果您完全是新手,可以检查AWS codedeploy。然而,我在Gitlab和AWS runner方面取得了很好的经验。

正常过程如下:

  • 构建
  • 构建机器上的集成/e2e测试(dockerize)
  • 部署在测试集群/preprod集群上
  • 运行烟雾测试
  • 部署在prod上

我还看到过一些流程可以快速进行生产,并将时间投入到更好的监控和快速回滚中,而不是预生产集群和冒烟测试。这通常适用于业务非关键流程以及再处理的成本。

 类似资料:
  • 我正试图在集群上运行Flink作业。这份工作在我的开发(本地)环境下运行良好。但当我使用以下命令将其部署到集群上时: 它失败了,错误如下: 我还添加了所需的依赖项 我正在使用构建jar文件

  • 我们在AWS EKS kubernetes集群中运行了一个Hazelcast 3.12集群。 您知道如何将运行在AWS EKS kubernetes群集内部的具有多个pod的Hazelcast群集暴露到kubernetes群集外部吗? Hazelcast集群有6个吊舱,暴露在kubernetes集群之外,具有LoadBalancer(AWS经典负载平衡器)类型的kubernetes“服务”。 当我

  • 一、部署模式 Flink 支持使用多种部署模式来满足不同规模应用的需求,常见的有单机模式,Standalone Cluster 模式,同时 Flink 也支持部署在其他第三方平台上,如 YARN,Mesos,Docker,Kubernetes 等。以下主要介绍其单机模式和 Standalone Cluster 模式的部署。 二、单机模式 单机模式是一种开箱即用的模式,可以在单台服务器上运行,适用于

  • 我正在尝试在kubernetes上部署高可用的flink集群。在下面的示例中,工作节点被复制,但我们只有一个主pod。 https://github.com/apache/flink-statefun 据我所知,有两种方法可以让job manager成为HA。 https://ci.apache.org/projects/flink/flink-docs-stable/ops/jobmanager

  • 我通过以下方式进行身份验证 首先,我通过以下方式对AWS进行身份验证 我刚刚发现我可以用下面的命令重新配置,但我很好奇这是否是处理它的正确方法,以及是否有任何其他AWS方法提供。

  • 我的EKS集群变得不健康,因为所有豆荚都有“容器创建”错误,这可能与CNI问题有关。 在版本1.5.5中,conflist文件的位置更改为/etc/cni/10-aws.conflist,但节点仍然处于“notready”状态。 我的EKS版本是1.14,平台版本是EKS.2。 Ipamd日志: 有人对这个问题有什么线索吗?