[
https://issues.apache.org/jira/browse/FLINK-16602?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zili Chen closed FLINK-16602.
-----------------------------
Resolution: Fixed
master(1.11) via 562e7711914e58f152288b512bbf05ec3a1cfbfa
> Rework the Service design for native Kubernetes deployment
> ----------------------------------------------------------
>
> Key: FLINK-16602
> URL: https://issues.apache.org/jira/browse/FLINK-16602
> Project: Flink
> Issue Type: Sub-task
> Components: Deployment / Kubernetes
> Affects Versions: 1.10.0
> Reporter: Canbin Zheng
> Assignee: Canbin Zheng
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.11.0
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> {color:#0e101a}At the moment we usually create two Services for a Flink
> application, one is the internal Service and the other is the so-called rest
> Service, the previous aims for forwarding request from the TMs to the JM, and
> the rest Service mainly serves as an external service for the Flink
> application. Here is a summary of the issues:{color}
> # {color:#0e101a}The functionality boundary of the two Services is not clear
> enough since the internal Service could also become the rest Service when its
> exposed type is ClusterIP.{color}
> # {color:#0e101a}For the high availability scenario, we create a useless
> internal Service which does not help forward the internal requests since the
> TMs directly communicate with the JM via the IP or hostname of the JM
> Pod.{color}
> # {color:#0e101a}Headless service is enough to help forward the internal
> requests from the TMs to the JM. Service of ClusterIP type would add
> corresponding rules into the iptables, too many rules in the iptables would
> lower the kube-proxy's efficiency in refreshing iptables while notified of
> change events, which could possibly cause severe stability problems in a
> Kubernetes cluster.{color}
>
> {color:#0e101a}Therefore, we propose some improvements to the current
> design:{color}
> # {color:#0e101a}Clarify the functionality boundary for the two Services,
> the internal Service only serves the internal communication from TMs to JM,
> while the rest Service makes the Flink cluster accessible from outside. The
> internal Service only exposes the RPC and BLOB ports while the external one
> exposes the REST port.{color}
> # {color:#0e101a}Do not create the internal Service in the high availability
> case.{color}
> # {color:#0e101a}Use HEADLESS type for the internal Service.{color}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)