CycleCloud supports starting both Virtual Machines and Virtual Machine Scale Sets in Azure. Access to specific ports on nodes is limited by the network security groups associated with the virtual network settings.
Public IP Addresses
To access cluster nodes over the public network, set the AssociatePublicIpAddress attribute on the primary network interface. The primary interface is the first interface defined for the node or the interface with AssociatePublicIpAddress specified. In it’s simplest form, a public interface may be defined as:
[[node master]] [[[network-interface eth0]]] AssociatePublicIpAddress = true [[nodearray execute]] [[[network-interface eth0]]] AssociatePublicIpAddress = true [[[input-endpoint SSH]]] PrivatePort = 22 PublicPort = 10000 [[[input-endpoint MyCustomPort]]] PrivatePort = 999 PublicPort = 10999 Protocol = tcp
The above configuration allows public access to the master node o n ports as allowed by the Network Security Group for the Virtual Network. For the nodearray, PublicPort is the base port number for nodes in the array. The range of ports reserved for the nodearray is 500 per endpoint. Endpoints default to TCP protocol but UDP is also supported via Protocol = UDP. By default, the public IP address assigned to the node will be dynamic and will change each time the cluster is started. To have a statically-assigned public IP address for your node add PublicDnsLabel to the network interface configuration for the primary interface. PublicDnsLabel must be a unique name in Azure DNS. For example, in the following configuration:
[[node master]] [[network-interface eth0]] AssociatePublicIpAddress = true PublicDnsLabel = myuniquename
will yield a statically-assigned public IP address for the node in the form of:
Private IP Addresses
By default, virtual machines will receive a dynamically-assigned private IP address in Azure. In certain circumstances, it’s necessary or desirable for nodes to have fixed private IP addresses. To accomplish this, use the following configuration for the network-interface section of your cluster configuration:
[[[network-interface eth0]]] PrivateIp = x.x.x.x
Note that the private IP address specified must be valid for the associated subnet. Azure reserves the first four and last IPs in the subnet. These addresses cannot be manually assigned to a node.