Good afternoon.
Perhaps you will be discouraged by what I will write below, but nevertheless, I
ask for help in solving my problem. Perhaps the architecture of our solution
will not seem correct to you.
There are backend services that communicate with a service that implements
spark-driver. When the service starts with driver, spark-submit occurs and the
session lives until the service stops. The service works constantly.
Faced problems when they began to deploy our solution in k8s. The services were
located inside the k8s cluster and the Spark StandAlone cluster outside the
k8s. When starting the service from spark-driver, spark-submit is executed,
which confirms the presence of an application on the UI.
But on workers, we get an error that the workman could not connect to a random
port to the spark-driver. The ports themselves have learned to override and
specify, but these ports must be accessible from outside the cluster. We found
a solution in which we open NodePort on workers - it works. BUT this is not
suitable for most customers due to internal regulations. How to resolve the
issue through ingress was never found.
Faced problems when they began to deploy our solution in k8s. The services were
located inside the k8s cluster and the Spark StandAlone cluster outside the
k8s. When starting the service from spark-driver, spark-submit is executed,
which confirms the presence of an application on the UI. But on workers, we get
an error that the workman could not connect to a random port to the
spark-driver. The ports themselves have learned to override and specify, but
these ports must be accessible from outside the cluster. We found a solution in
which we open NodePort on workers - it works. BUT this is not suitable for most
customers due to internal regulations. How to resolve the issue through ingress
was never found.
with best regards,
Vitaly Kryukov