Skip to content

Latest commit

 

History

History
258 lines (224 loc) · 13.5 KB

2.Use-Octavia.md

File metadata and controls

258 lines (224 loc) · 13.5 KB

Thao tác với Octavia

1. Khởi tạo Web Server

  • 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

2. Khởi tạo Load Balancer trên Self-Service

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

  • Kiểm tra Log trên Worker

  • Khởi tạo một Listenner

[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


3. Khởi tạo Load Balancer sử dụng Provider

  • 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