Guides
Guides

Kubernetes

By its popularity on top cloud platforms, Kubernetes is the preferable and most unified way for production deployment.

Deployment modes

As HERE Anonymizer Preprocessor is an Apache Flink application, it can be deployed in all the available modes:

The Application Mode is the recommended deployment mode for most business cases. It's the most stable mode that allows fine-tuning, and deployments on pre-existing clusters.

Basic deployment pattern

Same as for standalone Docker deployments, the basic running pattern is to run single JobManager with one or more TaskManagers.

All examples in the Kubernetes deployment guides use the Flink Application Mode and the following Kubernetes resource maps:

Resource typeResource nameDescription, essential parameters
configmaphere-anonymizer-preprocessor-configsConfig files: flink configurations, logging, app.conf, ignite-config
configmaphere-anonymizer-indexer-envEnvironment variables: SOURCE_URI, SOURCE_FORMAT
configmaphere-anonymizer-preprocessor-envEnvironment variables: SOURCE_URI, SINK_URI, etc.
configmaphere-anonymizer-ignite-envEnvironment variables: OPTION_LIBS, CONFIG_URI, etc.
deploymentignite-serviceIgnite service for demo purposes
jobindexer-jobmanagerFlink JobManager for Indexer
jobpreprocessor-jobmanagerFlink JobManager for Preprocessor
deploymentindexer-taskmanagerFlink TaskManager, replicas: 2 for Indexer
deploymentpreprocessor-taskmanagerFlink TaskManager, replicas: 2 for Preprocessor
podignite-service-xxxRunning pod of Apache Ignite
podindexer-jobmanager-xxxRunning pod of JobManager for Indexer
podindexer-taskmanager-xx1Running pod of first TaskManager for Indexer
podindexer-taskmanager-xx2Running pod of second TaskManager for Indexer
podpreprocessor-jobmanager-xxxRunning pod of JobManager for Preprocessor
podpreprocessor-taskmanager-xx1Running pod of first TaskManager for Preprocessor
podpreprocessor-taskmanager-xx2Running pod of second TaskManager for Preprocessor
serviceindexer-jobmanagerExposing indexer-jobmanager host into the cluster, ports: 6123, 6124
serviceindexer-jobmanager-uiExposing indexer JobManager UI outside the cluster, port 8081
servicepreprocessor-jobmanagerExposing preprocessor-jobmanager host into the cluster, ports: 6123, 6124
servicepreprocessor-jobmanager-uiExposing preprocessor JobManager UI outside the cluster, port 8081
serviceignite-serviceExposing Apache Ignite ignite-service host into the cluster, ports: 8080, 10800

Tips

Use the following command to open ports and enable network accessibility for debugging in a Kubernetes cluster.

kubectl create deployment utils --image=docker.io/wbitt/network-multitool

Use this command to check if a resource, for example the preprocessor-jobmanager, is accessible inside the cluster.

kubectl exec -it deployments/utils -- bash
bash-5.1# nc -zv preprocessor-jobmanager 6123
preprocessor-jobmanager (10.99.56.22:6123) open