[ https://issues.apache.org/jira/browse/FLINK-20249?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17239987#comment-17239987 ]
Ruguo Yu edited comment on FLINK-20249 at 11/28/20, 2:39 PM: ------------------------------------------------------------- [~trohrmann] [~xintongsong], I have two points to share with you: # The same opinion as [~xintongsong] {quote}Ok, I think I see your point. {quote}whether we really need to support JM failover w/o HA. {quote} I think JM failover w/o HA is currently supported. I agree this is not something we want to promote/recommend, but I would suggest not to change it. {quote}IMO, It indeed does not ensure the continuity of job and the integrity of data in non-HA mode after JM failover whether on yarn or k8s, if users use this mode then they need know and receive this price otherwise they should use HA mode. so do nothing and preserve yarn/k8s behavior. # Whether to consider adding a switch to determine the internal service start [~trohrmann] {quote}2) this behaviour should only work for K8s. On Yarn, the old TMs should not be able to reconnect to the newly started JM w/o service discovery. Hence, I see this as a implementation specific feature of K8s which we should not promote. I am not saying to remove it just to make it symmetric to the other implementations but we should not make this "public" API. {quote}the difference in service discovery between yarn/mesos and k8s makes them inconsistent in the possibility of reusing old TMs. if there is a configuration item such as "kubernetes.internal-serviece.enable", it is true then start internal service and reusing old TMs instead of new after JM failover(in this case, FLINK-20332 need be solved first), false then opposite(disable internal service and start new TMs) which can be consistent with other active deployment. WDYT, tks! was (Author: jiang7chengzitc): [~trohrmann] [~xintongsong], I have two points to share with you: # The same opinion as [~xintongsong] {quote}!image-2020-11-28-21-42-22-059.png|width=547,height=94!{quote}IMO, It indeed does not ensure the continuity of job and the integrity of data in non-HA mode after JM failover whether on yarn or k8s, if users use this mode then they need know and receive this price otherwise they should use HA mode. so do nothing and preserve yarn/k8s behavior. # Whether to consider adding a switch to determine the internal service start [~trohrmann] {quote}{color:#172b4d}!image-2020-11-28-22-10-45-590.png|width=537,height=102!{color}{quote}the difference in service discovery between yarn/mesos and k8s makes them inconsistent in the possibility of reusing old TMs. if there is a configuration item such as "kubernetes.internal-serviece.enable", it is true then start internal service and reusing old TMs instead of new after JM failover(in this case, FLINK-20332 need be solved first), false then opposite(disable internal service and start new TMs) which can be consistent with other active deployment. WDYT, tks! > Rethink the necessity of the k8s internal Service even in non-HA mode > --------------------------------------------------------------------- > > Key: FLINK-20249 > URL: https://issues.apache.org/jira/browse/FLINK-20249 > Project: Flink > Issue Type: Improvement > Components: Deployment / Kubernetes > Affects Versions: 1.11.0 > Reporter: Ruguo Yu > Priority: Minor > Labels: pull-request-available > Fix For: 1.12.0 > > Attachments: k8s internal service - in english.pdf, k8s internal > service - v2.pdf, k8s internal service.pdf > > > In non-HA mode, k8s will create internal service that directs the > communication from TaskManagers Pod to JobManager Pod, and TM Pods could > re-register to the new JM Pod once a JM Pod failover occurs. > However recently I do an experiment and find a problem that k8s will first > create new TM pods and then destory old TM pods after a period of time once > JM Pod failover (note: new JM podIP has changed), then job will be reschedule > by JM on new TM pods, it means new TM has been registered to JM. > During this process, internal service is active all the time, but I think it > is not necessary that keep this internal service, In other words, wo can weed > out internal service and use JM podIP for TM pods communication with JM pod, > In this case, it be consistent with HA mode. > Finally,related experiments is in attached (k8s internal service.pdf). -- This message was sent by Atlassian Jira (v8.3.4#803005)