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 type | Resource name | Description, essential parameters |
|---|---|---|
| configmap | here-anonymizer-configs | Config files: flink configuration, logging, anonymization.conf |
| configmap | here-anonymizer-env | Environment variables: SOURCE_URI, SINK_URI, etc. |
| secret | here-anonymizer-secrets | Secret environment variables: HERE_ANONYMIZER_LICENSE, etc. |
| deployment | rabbit | RabbitMQ for demo purposes |
| job | jobmanager | Flink JobManager |
| deployment | taskmanager | Flink TaskManager, replicas: 2 |
| pod | rabbit-xxx | Running pod of RabbitMQ |
| pod | jobmanager-xxx | Running pod of JobManager |
| pod | taskmanager-xx1 | Running pod of first TaskManager |
| pod | taskmanager-xx2 | Running pod of second TaskManager |
| service | jobmanager | Exposing jobmanager host into the cluster, ports: 6123, 6124 |
| service | jobmanager-ui | Exposing JobManager UI outside the cluster, port 8081 |
| service | rabbit | Exposing RabbitMQ rabbit host into the cluster, port 5672 |
| service | rabbit-ui | Exposing 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-multitoolUse 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) openUpdated 26 days ago