Your Cloud, Your Rules: Ververica's Bring Your Own Cloud Deployment
How can I install Ververica Platform onto a Kubernetes cluster where there is no Internet connectivity?
Since there is no Internet connection, direct helm install on the client machine using the Ververica helm chart repo is not an option. Therefore, Ververica Platform Helm charts must first be downloaded to the client machine. Second, Ververica Platform docker images need to be pulled into a local docker environment of a client machine and then pushed into the local container registry.
This solution requires:
Here are the steps of installing Ververica Platform on a Kubernetes environment where there is no outside network connectivity.
If there are Firewall rules in place, make sure the destination access is granted from the client machine:
registry.ververica.com:443 TCP
charts.ververica.com:443 TCP
Following are the initial steps require internet connectivity:
1) On the client machine with internet connectivity, pull all the Ververica Platform images from the Ververica container registry:
# 2.12.1 is an example here. Choose the version you need.
docker pull registry.ververica.com/v2.12/vvp-appmanager:2.12.1
docker pull registry.ververica.com/v2.12/vvp-gateway:2.12.1
docker pull registry.ververica.com/v2.12/vvp-ui:2.12.1
docker pull registry.ververica.com/v2.12/vvp-result-fetcher-service:2.12.1
docker pull registry.ververica.com/v2.12/vvp-artifact-fetcher:2.12.1
docker pull registry.ververica.com/v2.12/flink:1.18.1-stream1-scala_2.12-java11
2) Pull the Ververica Platform Helm chart of the related version to be used later for installing all required components of the platform.
# choose the version you need
helm pull ververica/ververica-platform --version 5.8.1
The above command will download the chart ververica-platform-5.8.1.tgz.
After downloading the chart, copy it to the client machine where the Ververica Platform will be installed.
Important: From now on, all the following steps will be taken locally without the need of internet connection.
3) Tag all the downloaded images with the local registry and repository (namespace) information.
Suppose the following are our local registry and repository information:
localhost:5002
v2.12
Here are the commands of tagging all the pulled images:
# adapt to the version you use
docker tag registry.ververica.com/v2.12/vvp-appmanager:2.12.1 localhost:5002/v2.12/vvp-appmanager:2.12.1
docker tag registry.ververica.com/v2.12/vvp-artifact-fetcher:2.12.1 localhost:5002/v2.12/vvp-artifact-fetcher:2.12.1
docker tag registry.ververica.com/v2.12/vvp-gateway:2.12.1 localhost:5002/v2.12/vvp-gateway:2.12.1
docker tag registry.ververica.com/v2.12/vvp-result-fetcher-service:2.12.1 localhost:5002/v2.12/vvp-result-fetcher-service:2.12.1
docker tag registry.ververica.com/v2.12/vvp-ui:2.12.1 localhost:5002/v2.12/vvp-ui:2.12.1
docker tag registry.ververica.com/v2.12/flink:1.18.1-stream1-scala_2.12-java11 localhost:5002/v2.12/flink:1.18.1-stream1-scala_2.12-java11
4) Push the tagged images to local registry as follows:
# adapt to the version you use
docker push localhost:5002/v2.12/vvp-appmanager:2.12.1
docker push localhost:5002/v2.12/vvp-gateway:2.12.1
docker push localhost:5002/v2.12/vvp-ui:2.12.1
docker push localhost:5002/v2.12/vvp-result-fetcher-service:2.12.1
docker push localhost:5002/v2.12/vvp-artifact-fetcher:2.12.1
docker push localhost:5002/v2.12/flink:1.18.1-stream1-scala_2.12-java11
5 In the same directory where the chart fileververica-platform-5.8.1.tgz is copied, create a local values file.
touch values_local.yaml
Add the below information in it and save the values_local.yaml file:
vvp:
registry: localhost:5002/v2.12
6) Create a kubernetes namespace where the Ververica Platform will be installed:
kubectl create namespace vvp
7) From the directory where the downloaded chart and the values files exist, execute the following command to install the Ververica Platform:
helm upgrade --install vvp ./ververica-platform-5.8.1.tgz \
--namespace vvp \
-f values_local.yaml \
-f values-license.yaml