-
Khởi động 2 máy ảo đã cài đặt Web Server, Security Group đã mở port 80
-
Trong Octavia các Load Balancer có thể sử dụng phục vụ được cả mô hình : Self-Service và Provider
- Khởi tạo Load Blancer trên Subnet 192.168.30.0
[LAB] openstack loadbalancer create --name lb2 --vip-subnet-id PUBLIC_IP_30
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| admin_state_up | True |
| created_at | 2019-01-14T09:41:09 |
| description | |
| flavor | |
| id | bf0df0f3-3e21-4308-891f-4f0e0ccf2bfb |
| listeners | |
| name | lb1 |
| operating_status | OFFLINE |
| pools | |
| project_id | c346047f05064784a58f7dbb6394466e |
| provider | octavia |
| provisioning_status | PENDING_CREATE |
| updated_at | None |
| vip_address | 192.168.220.10 |
| vip_network_id | ddd55611-bb96-4b52-ac1b-675e8d3184ac |
| vip_port_id | e7bcc65b-fc0d-43ea-ad63-c745048c41a8 |
| vip_qos_policy_id | None |
| vip_subnet_id | 5f933cdb-7aec-401c-bed1-b4f17e78194d |
+---------------------+--------------------------------------+
[LAB]openstack loadbalancer listener create --name listener1 --protocol HTTP --protocol-port 80 lb1
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| connection_limit | -1 |
| created_at | 2019-01-14T10:19:13 |
| default_pool_id | None |
| default_tls_container_ref | None |
| description | |
| id | a59b5f62-0915-4050-9eb9-980c451d2d34 |
| insert_headers | None |
| l7policies | |
| loadbalancers | bf0df0f3-3e21-4308-891f-4f0e0ccf2bfb |
| name | listener1 |
| operating_status | OFFLINE |
| project_id | c346047f05064784a58f7dbb6394466e |
| protocol | HTTP |
| protocol_port | 80 |
| provisioning_status | PENDING_CREATE |
| sni_container_refs | [] |
| updated_at | None |
+---------------------------+--------------------------------------+
- Khởi tạo Pool sử dụng ROUND_ROBIN cho Load Balancing ( sử dụng Listenner ID )
openstack loadbalancer pool create --name pool1 --lb-algorithm ROUND_ROBIN --listener a59b5f62-0915-4050-9eb9-980c451d2d34 --protocol HTTP
- Khởi tạo Health Monitor tới các Pool Member ( sử dụng Pool ID )
openstack loadbalancer healthmonitor create --delay 5 --max-retries 4 --timeout 10 --type HTTP --url-path / 5aa99c69-d200-4969-8af9-ac429aa80487
- Thêm các Web Server làm Pool Member ( sử dụng Pool ID )
openstack loadbalancer member create --subnet-id PRIVATE_VIP_200 --address 192.168.220.8 --protocol-port 80 5aa99c69-d200-4969-8af9-ac429aa80487
openstack loadbalancer member create --subnet-id PRIVATE_VIP_200 --address 192.168.220.30 --protocol-port 80 5aa99c69-d200-4969-8af9-ac429aa80487
- Gắn Floating VIP vào LB
[LAB]openstack floating ip create PUBLIC_VIP
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| created_at | 2019-01-14T10:31:12Z |
| description | |
| fixed_ip_address | None |
| floating_ip_address | 192.168.30.147 |
| floating_network_id | c608ac10-d6a4-4e96-bb38-96a869a36b36 |
| id | 90d2ebd0-2c44-456c-b841-975e87d23dca |
| name | 192.168.30.147 |
| port_id | None |
| project_id | c346047f05064784a58f7dbb6394466e |
| qos_policy_id | None |
| revision_number | 0 |
| router_id | None |
| status | DOWN |
| subnet_id | None |
| updated_at | 2019-01-14T10:31:12Z |
+---------------------+--------------------------------------+
[LAB]openstack floating ip set --port e7bcc65b-fc0d-43ea-ad63-c745048c41a8 192.168.30.147
- Khởi tạo một Load Balancer
[root@controller ~]# openstack loadbalancer create --name lb2 --vip-subnet-id PUBLIC_IP_30
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| admin_state_up | True |
| created_at | 2019-01-16T01:18:58 |
| description | |
| flavor | |
| id | e26ee169-004a-4a6f-baaf-3bc6bcb42df6 |
| listeners | |
| name | lb2 |
| operating_status | OFFLINE |
| pools | |
| project_id | c346047f05064784a58f7dbb6394466e |
| provider | octavia |
| provisioning_status | PENDING_CREATE |
| updated_at | None |
| vip_address | 192.168.30.159 |
| vip_network_id | c608ac10-d6a4-4e96-bb38-96a869a36b36 |
| vip_port_id | c88f3a67-9c42-4e55-8197-1effc1e9c587 |
| vip_qos_policy_id | None |
| vip_subnet_id | 33d66aab-062e-42ab-b9f6-d72dcceafdd7 |
+---------------------+--------------------------------------+
- Khởi động Listenner trên LB2
[root@controller ~]# openstack loadbalancer listener create --name listener1 --protocol HTTP --protocol-port 80 lb2
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| connection_limit | -1 |
| created_at | 2019-01-16T01:29:25 |
| default_pool_id | None |
| default_tls_container_ref | None |
| description | |
| id | 4f7e6386-37cd-4cd4-80d9-901b96f20f6c |
| insert_headers | None |
| l7policies | |
| loadbalancers | e26ee169-004a-4a6f-baaf-3bc6bcb42df6 |
| name | listener1 |
| operating_status | OFFLINE |
| project_id | c346047f05064784a58f7dbb6394466e |
| protocol | HTTP |
| protocol_port | 80 |
| provisioning_status | PENDING_CREATE |
| sni_container_refs | [] |
| updated_at | None |
+---------------------------+--------------------------------------+
- Khởi tạo Pool sử dụng ROUND_ROBIN cho Listenner 1 ( sử dụng ID echo Listenner )
[root@controller ~]# openstack loadbalancer pool create --name pool1 --lb-algorithm ROUND_ROBIN --listener 4f7e6386-37cd-4cd4-80d9-901b96f20f6c --protocol HTTP
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| admin_state_up | True |
| created_at | 2019-01-16T01:30:05 |
| description | |
| healthmonitor_id | |
| id | d0b7ee78-27e0-4b4a-9bb8-bbba416b8995 |
| lb_algorithm | ROUND_ROBIN |
| listeners | 4f7e6386-37cd-4cd4-80d9-901b96f20f6c |
| loadbalancers | e26ee169-004a-4a6f-baaf-3bc6bcb42df6 |
| members | |
| name | pool1 |
| operating_status | OFFLINE |
| project_id | c346047f05064784a58f7dbb6394466e |
| protocol | HTTP |
| provisioning_status | PENDING_CREATE |
| session_persistence | None |
| updated_at | None |
+---------------------+--------------------------------------+
- Khởi tạo Heath Monitor trên Pools 1 ( sử dụng Pool ID )
openstack loadbalancer healthmonitor create --delay 5 --max-retries 4 --timeout 10 --type HTTP --url-path / d0b7ee78-27e0-4b4a-9bb8-bbba416b8995
- Khởi tạo Pool Member trên Pool 1 ( sử dụng Pool ID )
[root@controller ~]# openstack loadbalancer member create --subnet-id PRIVATE_VIP_200 --address 192.168.220.8 --protocol-port 80 d0b7ee78-27e0-4b4a-9bb8-bbba416b8995
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| address | 192.168.220.8 |
| admin_state_up | True |
| created_at | 2019-01-16T01:33:30 |
| id | c2cb897e-8dfe-48b3-9b38-92b9fd5aecde |
| name | |
| operating_status | NO_MONITOR |
| project_id | c346047f05064784a58f7dbb6394466e |
| protocol_port | 80 |
| provisioning_status | PENDING_CREATE |
| subnet_id | 33d66aab-062e-42ab-b9f6-d72dcceafdd7 |
| updated_at | None |
| weight | 1 |
| monitor_port | None |
| monitor_address | None |
+---------------------+--------------------------------------+
[root@controller ~]# openstack loadbalancer member create --subnet-id PRIVATE_VIP_200 --address 192.168.220.8 --protocol-port 80 d0b7ee78-27e0-4b4a-9bb8-bbba416b8995
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| address | 192.168.220.8 |
| admin_state_up | True |
| created_at | 2019-01-16T01:59:13 |
| id | 4671aff1-6f96-46bf-b4b8-e1fe06468389 |
| name | |
| operating_status | OFFLINE |
| project_id | c346047f05064784a58f7dbb6394466e |
| protocol_port | 80 |
| provisioning_status | PENDING_CREATE |
| subnet_id | 33d66aab-062e-42ab-b9f6-d72dcceafdd7 |
| updated_at | None |
| weight | 1 |
| monitor_port | None |
| monitor_address | None |
+---------------------+--------------------------------------+
- Với các Web Server Nginx đang sử dụng IP Public . Có thể cấu hình thêm chỉ cho nhận các request từ VIP Load Balancer. Bước đầu tạo một file trong folder nginx tao một file
server.blacklist
với nội dung sau
allow 1.2.3.4; # Allow a single remote host
deny all; # Deny everyone else