开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink这样做是否成本很高?或者有没有其他的解决方式

想请问,如果我flink-conf.yaml中配置的jobmanager.rpc.address必须使用servicename直接指定,是不是会影响和k8s底座的通信?即要更深层的改造flink源码,即把namespace相关的内容都换成servicename?这样做是否成本很高?或者有没有其他的解决方式

展开
收起
圆葱猪肉包 2023-04-19 16:49:35 302 0
2 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    对于阿里云实时计算 Flink版,使用servicename直接指定jobmanager.rpc.address是可行的,不会影响和k8s底座的通信。因为在阿里云Kubernetes环境下,Service会自动地将Pod的网络地址封装为DNS names,所以使用servicename可以很方便地获取到需要通信的Pod的IP地址和端口。

    如果您想要深层改造flink源码,将namespace相关的内容都换成servicename还是成本较高的,涉及的源码比较多,对原有的Flink集群代码可能会产生较大的影响。可以通过改变阿里云 Kubernetes的实现方式来映射namespace到特定的service name,在框架层面不做特别修改。不过,这样的改变涉及到对Kubernetes源码的修改,同时可能还需要修改对应的插件代码,并不是很建议的做法。

    除了使用servicename直接指定jobmanager.rpc.address,还可以通过Kubernetes提供的DNS自动发现服务的方式来实现服务的发现。具体做法是在flink-conf.yaml中将jobmanager.rpc.address设置为DnsName。在kubernetes环境中,可以通过DnsName访问其他的Service,例如:

    jobmanager.rpc.address: my-service.namespace.svc.cluster.local
    

    其中,my-service和namespace都可以在kubernetes中设置。这种方式可以避免在Flink源码中修改代码,也不需要对Kubernetes底座进行深度修改,可行性较高。

    2023-04-30 22:55:06
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    对于在Flink中使用ServiceName配置JobManager RPC地址的方式,需要确保在Kubernetes集群内部,可以通过ServiceName正确地访问到JobManager服务。在Kubernetes中,Service是一个抽象层次,可以将一组Pod打包成一个逻辑服务,并给它们分配一个稳定的虚拟IP地址,这样其他的Pod或Service可以通过该虚拟IP地址来访问该服务。

    如果您的Flink集群和Kubernetes集群部署在同一个Kubernetes集群内部,并且已经正确地配置了Service,那么使用ServiceName配置JobManager RPC地址是没有问题的。在Flink中,需要在flink-conf.yaml文件中添加以下配置:

    jobmanager.rpc.address: ..svc.cluster.local 其中,是您所配置的JobManager服务的名称,是JobManager所在的Kubernetes Namespace的名称。

    如果您的Flink集群和Kubernetes集群不在同一个网络环境中,或者没有正确配置Service,可能会导致JobManager无法与Kubernetes集群通信,从而影响作业的运行。

    在Flink源码中,Namespace和ServiceName的相关内容是通过Kubernetes相关的配置类来管理的。如果您需要更深层次地改造Flink源码,可以考虑修改这些配置类,并重新编译Flink代码。不过这种方式的成本较高,需要具备一定的编程和Kubernetes相关知识。如果您只想简单地使用ServiceName配置JobManager RPC地址,可以先确保Kubernetes集群中Service的配置正确,并按照上述方式在flink-conf.yaml文件中进行配置即可。

    2023-04-21 09:58:44
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载