zentol commented on a change in pull request #12558:
URL: https://github.com/apache/flink/pull/12558#discussion_r439386000
##########
File path: docs/ops/deployment/native_kubernetes.md
##########
@@ -116,10 +116,12 @@ $ kubectl port-forward service/<ServiceName> 8081
- `NodePort`: Exposes the service on each Node’s IP at a static port (the
`NodePort`). `<NodeIP>:<NodePort>` could be used to contact the Job Manager
Service. `NodeIP` could be easily replaced with Kubernetes ApiServer address.
You could find it in your kube config file.
-- `LoadBalancer`: Default value, exposes the service externally using a cloud
provider’s load balancer.
+- `LoadBalancer`: exposes the service externally using a cloud provider’s load
balancer.
Review comment:
```suggestion
- `LoadBalancer`: Exposes the service externally using a cloud provider’s
load balancer.
```
##########
File path: docs/ops/deployment/index.md
##########
@@ -247,3 +247,60 @@ Supported Environments:
<span class="label label-primary">Azure</span>
<span class="label label-primary">Google Cloud</span>
<span class="label label-primary">On-Premise</span>
+
+## Deployment Best Practices
+
+### How to provide dependencies in the classpath
+
+Flink provides several approaches for providing dependencies (such as `*.jar`
files or static data) to Flink or user-provided
+applications. These approaches differ based on the deployment mode and target,
but also have commonalities, which are described here.
+
+To provide a dependency, there are the following options:
+- files in the **`lib/` folder** are added to the classpath used to start
Flink. It is suitable for libraries such as Hadoop or file systems not
available as plugins. Beware that classes added here can potentially interfere
with Flink, for example if Flink you are adding a different version of a
library already provided by Flink.
Review comment:
```suggestion
- files in the **`lib/` folder** are added to the classpath used to start
Flink. It is suitable for libraries such as Hadoop or file systems not
available as plugins. Beware that classes added here can potentially interfere
with Flink, for example if you are adding a different version of a library
already provided by Flink.
```
##########
File path: docs/ops/deployment/native_kubernetes.md
##########
@@ -116,10 +116,12 @@ $ kubectl port-forward service/<ServiceName> 8081
- `NodePort`: Exposes the service on each Node’s IP at a static port (the
`NodePort`). `<NodeIP>:<NodePort>` could be used to contact the Job Manager
Service. `NodeIP` could be easily replaced with Kubernetes ApiServer address.
You could find it in your kube config file.
-- `LoadBalancer`: Default value, exposes the service externally using a cloud
provider’s load balancer.
+- `LoadBalancer`: exposes the service externally using a cloud provider’s load
balancer.
Since the cloud provider and Kubernetes needs some time to prepare the load
balancer, you may get a `NodePort` JobManager Web Interface in the client log.
You can use `kubectl get services/<ClusterId>` to get EXTERNAL-IP and then
construct the load balancer JobManager Web Interface manually
`http://<EXTERNAL-IP>:8081`.
+ <span class="label label-warning">Warning!</span> Your JobManager (which can
run arbitary jar files) might be exposed to the public internet, without
authentication.
Review comment:
Is this a problem of Flink, or the provider?
##########
File path: docs/ops/deployment/index.md
##########
@@ -247,3 +247,60 @@ Supported Environments:
<span class="label label-primary">Azure</span>
<span class="label label-primary">Google Cloud</span>
<span class="label label-primary">On-Premise</span>
+
+## Deployment Best Practices
+
+### How to provide dependencies in the classpath
+
+Flink provides several approaches for providing dependencies (such as `*.jar`
files or static data) to Flink or user-provided
+applications. These approaches differ based on the deployment mode and target,
but also have commonalities, which are described here.
+
+To provide a dependency, there are the following options:
+- files in the **`lib/` folder** are added to the classpath used to start
Flink. It is suitable for libraries such as Hadoop or file systems not
available as plugins. Beware that classes added here can potentially interfere
with Flink, for example if Flink you are adding a different version of a
library already provided by Flink.
+
+- **`plugins/<name>/`** are loaded at runtime by Flink through separate
classloaders to avoid conflicts with classes loaded and used by Flink. Only jar
files which are prepared as [plugins]({% link ops/plugins.md %}) can be added
here.
+
+### Download Maven dependencies locally
+
+If you need to extend the Flink with a Maven dependency (and its transitive
dependencies),
+you can use a [Apache Maven](https://maven.apache.org) *pom.xml* file such as
to download all required files into a local folder:
Review comment:
```suggestion
you can use an [Apache Maven](https://maven.apache.org) *pom.xml* file to
download all required files into a local folder:
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]