Guides
Guides

Kubernetes

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

To learn about platform specifics, refer to the dedicated Azure Kubernetes Service and AWS Elastic Kubernetes Service sections.

HERE Anonymizer Self-Hosted deployment modes

As HERE Anonymizer Self-Hosted is an Apache Flink application, it can be deployed in all of the available modes:

The Application Mode is the recommended deployment mode for most business cases. It's the most stable mode, 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-configsConfig files: flink configuration, logging, anonymization.conf
configmaphere-anonymizer-envEnvironment variables: SOURCE_URI, SINK_URI, etc.
secrethere-anonymizer-secretsSecret environment variables: HERE_ANONYMIZER_LICENSE, etc.
deploymentrabbitRabbitMQ for demo purposes
jobjobmanagerFlink JobManager
deploymenttaskmanagerFlink TaskManager, replicas: 2
podrabbit-xxxRunning pod of RabbitMQ
podjobmanager-xxxRunning pod of JobManager
podtaskmanager-xx1Running pod of first TaskManager
podtaskmanager-xx2Running pod of second TaskManager
servicejobmanagerExposing jobmanager host into the cluster, ports: 6123, 6124
servicejobmanager-uiExposing JobManager UI outside the cluster, port 8081
servicerabbitExposing RabbitMQ rabbit host into the cluster, port 5672
servicerabbit-uiExposing RabbitMQ UI outside the cluster, port 15672

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 jobmanager, is accessible inside the cluster.

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