AzureHazelcastDiscovery Extension

Some features described in this article may be subject to licensing and/or separate surcharge. See the Private Cloud Bundle Products card and the Private Cloud Bundle Licensing article for detailed information.

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
  • Disk options:
    • OS disk type: Standard SSD
  • Networking:
    • Public inboud ports: SSH
  • Management:
    • Everything off
  • Tags:
    • Name: test-discovery-tag = 5713

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
  • 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