Question
How can I install Ververica Platform onto a Kubernetes cluster where there is no Internet connectivity?
Answer
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:
- A Kubernetes client machine with an Internet connection to download Ververica Platform Helm charts and pull the required docker images.
- A running Container Registry which can be accessible by your target Kubernetes cluster.
Here are the steps of installing Ververica Platform on a Kubernetes environment where there is no outside network connectivity.
Open Access in Firewall
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
Pull Docker Images and Download Charts
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.
Install Ververica Platform Offline
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:
- Registry: `localhost:5002`
- Repository: `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 file ververica-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