AzureHazelcastDiscovery Extension
Introduction
The AzureHazelcastDiscovery provides automatic discovery of the cluster nodes in Azure. This is useful when you do not want to provide or you cannot provide the list of possible IP addresses.
The extension is based on the Hazelcast Azure module.
Extension Configuration
Azure automatic discovery can be configured by setting the property below:
Name | Required | Description |
---|---|---|
com.nm.extensions.azurehazelcastdiscovery.hzPortRange
|
yes | The Hazelcast port range used to connect to other nodes. The value can be a single port (e.g. 5713) or a range of ports (e.g. 5701-5703) |
Configuration Steps to use Azure Instance Metadata Service
1 Create two virtual machines
- Home > Virtual Machines > Create a virtual machine
- Instance details:
- Virtual machine name:
node1
,node2
- Region: France Central
- Availability options: No redundancy
- Image: Ubuntu Server 18.04 LTS
- Size: Standard D2s v3
- Virtual machine name:
- Disk options:
- OS disk type: Standard SSD
- Networking:
- Public inboud ports: SSH
- Management:
- Everything off
- Tags:
- Name:
test-discovery-tag = 5713
- Name:
2 Install Java on both machines
- install
$ sudo apt-get install openjdk-8-jdk-headless
3 Copy Tomcat and Appway to both machines
4 Configure extension
- Create service principal Home > Azure Active Directory > App registrations
- New application registration
- Name:
test-discovery-app
- Homepage:
https://whereever.bla/sign-in
=> clientId =65ce5ebf-4ca5-....-88d5-e6ec3c6c29b3
- Name:
- Settings / Keys
-> create one and copy value
=> clientSecret =
4ekdAnCFYuzfRTk....1Ac8lhoZBzZopv0hJH5ed6GY
- Check directory properties
Home > Azure Active Directory > Properties
=> tenantId =
98654309-229a-....-bf8a-8ac4f0cf544f
- Check subscriptions
Home > Subscriptions
=> subscriptionId =
e816d7cb-c197-....-84b0-0241c359a5d9
5 Allow access to service principal
- Edit Role assignments Home > Subscriptions > Free Trial (or similar) > Access control (IAM)
- Add role assignment
- Role: Contributor
- Select:
test-discovery-app
6 Enable system assigned managed identity to both virtual machines Identity > System Assigned > Status > On
7 Assign the Reader role to the Virtual Machines in the used Resource Group Resource Group > [Select the cluster resource group used] > IAM > Role Assignment > Add > Add role assignment
- Role: Reader
- Assign access to: Virtual Machine
- Select: node1/node2
8 Open Hazelcast port and HTTP port on every node Virtual Machine > Networking > Add inbound port rule
9 Start Tomcat
./startup.sh
- Check that the nodes find each other