����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.169 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/./././www/vendor/rackspace/php-opencloud/doc/services/load-balancer/ |
Upload File : |
Nodes
=====
.. include:: lb-setup.sample.rst
List Nodes
----------
You can list the nodes attached to a load balancer:
.. code-block:: php
$nodes = $loadBalancer->nodeList();
foreach ($nodes as $node) {
/** @var $node OpenCloud\LoadBalancer\Resource\Node **/
}
Add Nodes
---------
You can attach additional nodes to a load balancer. Assume
``$loadBalancer`` already has two nodes attached to it - ``$serverOne``
and ``$serverTwo`` - and you want to attach a third node to it, say
``$serverThree``, which provides a service on port 8080.
**Important:** Remember to call ``$loadBalancer->addNodes()`` after all
the calls to ``$loadBalancer->addNode()`` as shown below.
.. code-block:: php
$address = $serverThree->addresses->private[0]->addr;
$loadBalancer->addNode($address, 8080);
$loadBalancer->addNodes();
The signature for ``addNodes`` is as follows:
.. function:: addNodes($address, $port[, $condition = 'ENABLED'[, $type = null[, $weight = null]]])
Add a node to a load balancer
:param string $address: the IP address of the node
:param integer $port: the port number of the node
:param string $condition: the initial condition of the code. Defaults to ``ENABLED``
:param string $type: either ``PRIMARY`` or ``SECONDARY``
:param integer $weight: the node weight (for round-robin algorithm)
The ``addNode`` method accepts three more optional parameters, in
addition to the two shown above:
Modify Nodes
------------
You can modify one or more of the following node attributes:
- ``condition``: The condition of the load balancer:
- ``ENABLED`` – Node is ready to receive traffic from the load
balancer.
- ``DISABLED`` – Node should not receive traffic from the load
balancer.
- ``DRAINING`` – Node should process any traffic it is already
receiving but should not receive any further traffic from the load
balancer.
- ``type``: The type of the node:
- ``PRIMARY`` – Nodes defined as PRIMARY are in the normal rotation
to receive traffic from the load balancer.
- ``SECONDARY`` – Nodes defined as SECONDARY are only in the
rotation to receive traffic from the load balancer when all the
primary nodes fail.
- ``weight``: The weight, between 1 and 100, given to node when
distributing traffic using either the ``WEIGHTED_ROUND_ROBIN`` or the
``WEIGHTED_LEAST_CONNECTIONS`` load balancing algorithm.
.. code-block:: php
use OpenCloud\LoadBalancer\Enum\NodeCondition;
use OpenCloud\LoadBalancer\Enum\NodeType;
$node->update(array(
'condition' => NodeCondition::DISABLED,
'type' => NodeType::SECONDARY
));
Remove Nodes
------------
There are two ways to remove a node. The first way is on an
``OpenCloud\LoadBalancer\Resource\Node`` instance, like so:
.. code-block:: php
$node->delete();
The second is with an ``OpenCloud\LoadBalancer\Resource\LoadBalancer``
instance and the node's ID, like so:
.. code-block:: php
$loadBalancer->removeNode('{nodeId}');
where '{nodeId}' is the integer ID of the node itself - this is a required value.
View Node Service Events
------------------------
You can view events associated with the activity between a node and a
load balancer:
.. code-block:: php
$nodeEvents = $loadBalancer->nodeEventList();
foreach ($nodeEvents as $nodeEvent) {
/** @var $nodeEvent OpenCloud\LoadBalancer\Resource\NodeEvent **/
}