[
https://issues.apache.org/jira/browse/FLINK-21128?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chesnay Schepler closed FLINK-21128.
------------------------------------
Resolution: Fixed
master: a26388c4d51cd793f65ee81465d8bb00c3394273
> Rethink how Kubernetes interfaces with our docker image
> -------------------------------------------------------
>
> Key: FLINK-21128
> URL: https://issues.apache.org/jira/browse/FLINK-21128
> Project: Flink
> Issue Type: Improvement
> Components: Deployment / Kubernetes, Deployment / Scripts
> Reporter: Chesnay Schepler
> Assignee: Yang Wang
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.13.0
>
>
> Our native Kubernetes integration assembles a {{java}} command that is passed
> to the docker-script, which first does some magical stuff to create the
> classpath
> {code}
> # Set the Flink related environments
> export _FLINK_HOME_DETERMINED=true
> . $FLINK_HOME/bin/config.sh
> export FLINK_CLASSPATH="`constructFlinkClassPath`:$INTERNAL_HADOOP_CLASSPATHS"
> {code}
> and then evaluates the given java command.
> This magical stuff is a bit problematic for a few reasons:
> 1) it is _only_ required for Kubernetes to work; it should not be executed in
> any other case
> 2) it appears to be required for running anything in Flink that is not part
> of the docker-entrypoint API (e.g., jobmanager) when it isn't.
> 3) it unnecessarily spreads kubernetes-specific logic across the flink and
> flink-docker repositories.
> A simple change would be to introduce dedicated Kubernetes scripts into the
> distribution, which for starters will just import {{config.sh}}, export
> FLINK_CLASSPATH and evaluate the given command.
> In the long-run it would be good if we would not create a java command but
> instead relied on the existing scripts which do exactly that already.
> As is stands we're duplicating code across the distribution and the
> Kubernetes module, which already caused troubles when we did the log4j2
> migration.
> Ideally we find a way to reuse the existing code in the Kubernetes module for
> generating these commands in the existing scripts, e.g., by moving them to
> the BashJavaUtils.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)