[ 
https://issues.apache.org/jira/browse/FLINK-32980?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zhanghao Chen updated FLINK-32980:
----------------------------------
    Description: 
*Problem*

The following configs are supposed to be supported:
|h5. env.java.opts.all|(none)|String|Java options to start the JVM of all Flink 
processes with.|
|h5. env.java.opts.client|(none)|String|Java options to start the JVM of the 
Flink Client with.|

However, the two configs do not take effect for starting Flink session clusters 
using kubernetes-session.sh and yarn-session.sh. This can lead to problems in 
complex production envs. For example, in my company, some nodes are IPv6-only, 
and the connection between Flink client and K8s/YARN control plane is via a 
domain name whose backend is on IPv4/v6 dual stack, and the JVM arg 
-Djava.net.preferIPv6Addresses=true needs to be set to make Java connect to 
IPv6 addresses in favor of IPv4 ones otherwise the K8s/YARN control plane is 
inaccessible.

 

*Proposal*

The fix is straight-forward, simply apply the following changes to the session 
scripts:

`
FLINK_ENV_JAVA_OPTS="${FLINK_ENV_JAVA_OPTS} ${FLINK_ENV_JAVA_OPTS_CLI}"
exec $JAVA_RUN $JVM_ARGS $FLINK_ENV_JAVA_OPTS xxx
`

  was:
*Problem*

The following configs are supposed to be supported:
|h5. env.java.opts.all|(none)|String|Java options to start the JVM of all Flink 
processes with.|
|h5. env.java.opts.client|(none)|String|Java options to start the JVM of the 
Flink Client with.|

However, the two configs do not take effect for starting Flink session clusters 
using kubernetes-session.sh and yarn-session.sh. This can lead to problems in 
complex production envs. For example, in my company, some nodes are IPv6-only, 
and the connection between Flink client and K8s/YARN control plane is via a 
domain name whose backend is on IPv4/v6 dual stack, and the JVM arg 
-Djava.net.preferIPv6Addresses=true needs to be set to make Java connect to 
IPv6 addresses in favor of IPv4 ones otherwise the K8s/YARN control plane is 
inaccessible.

 

*Proposal*

The fix is straight-forward, simply apply the following changes to the session 
scripts:

`
# Add Client-specific JVM options
FLINK_ENV_JAVA_OPTS="${FLINK_ENV_JAVA_OPTS} ${FLINK_ENV_JAVA_OPTS_CLI}"
 
exec $JAVA_RUN $JVM_ARGS $FLINK_ENV_JAVA_OPTS xxx
`


> Support env.java.opts.all & env.java.opts.cli config for starting Session 
> clusters
> ----------------------------------------------------------------------------------
>
>                 Key: FLINK-32980
>                 URL: https://issues.apache.org/jira/browse/FLINK-32980
>             Project: Flink
>          Issue Type: Improvement
>          Components: Command Line Client, Deployment / Scripts
>    Affects Versions: 1.18.0
>            Reporter: Zhanghao Chen
>            Priority: Minor
>             Fix For: 1.19.0
>
>
> *Problem*
> The following configs are supposed to be supported:
> |h5. env.java.opts.all|(none)|String|Java options to start the JVM of all 
> Flink processes with.|
> |h5. env.java.opts.client|(none)|String|Java options to start the JVM of the 
> Flink Client with.|
> However, the two configs do not take effect for starting Flink session 
> clusters using kubernetes-session.sh and yarn-session.sh. This can lead to 
> problems in complex production envs. For example, in my company, some nodes 
> are IPv6-only, and the connection between Flink client and K8s/YARN control 
> plane is via a domain name whose backend is on IPv4/v6 dual stack, and the 
> JVM arg -Djava.net.preferIPv6Addresses=true needs to be set to make Java 
> connect to IPv6 addresses in favor of IPv4 ones otherwise the K8s/YARN 
> control plane is inaccessible.
>  
> *Proposal*
> The fix is straight-forward, simply apply the following changes to the 
> session scripts:
> `
> FLINK_ENV_JAVA_OPTS="${FLINK_ENV_JAVA_OPTS} ${FLINK_ENV_JAVA_OPTS_CLI}"
> exec $JAVA_RUN $JVM_ARGS $FLINK_ENV_JAVA_OPTS xxx
> `



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to