# A10 Networks OpenStack Octavia Driver
## Table of Contents
1. [Overview](#Overview)
2. [System Requirements](#System-Requirements)
3. [Setup and Configuration](#Setup-And-Configuration)
1. [For use with vThunders](#3a-for-use-with-vthunders)
2. [For use with hardware devices](#3b-for-use-with-hardware-devices)
4. [Setting Object Defaults](#Setting-Object-Defaults)
5. [Troubleshooting](#Troubleshooting)
6. [Contributing](#Contributing)
7. [Issues and Inquiries](#Issues-and-Inquiries)
## Overview
**This solution is currently in beta stage with limited support**
The A10 Networks Octavia Driver allows for configuration of Thunder, vThunder, and AX Series Appliances deployed in
an Openstack enviroment. While the default Octavia provider leverages an "Amphora per VIP" architecture,
this provider driver uses a "Thunder per Tenant" architecture. Therefore, each tenant may only be serviced by a single
**active** Thunder device.
## System Requirements
Openstack Controller Node Minimum Requirements
* Memory: 8GB
* Disk: 20GB
* OS: Ubuntu 18.04 or later
* OpenStack (Nova, Neutron, Etc): Stein Release
* Octavia version: >=4.1.1, <5.0.0.0rc1 (Stein versions)
Openstack Compute Node Minimum Requirements
* vCPUs: 8
* Memory: 16GB
* Disk: 40GB
* OS: Ubuntu 18.04 or later
* Openstack (Nova, Neutron, Etc): Stein Release
ACOS Device Requirements
* ACOS version: ACOS 4.1.4 GR1 P2
* AXAPI version: 3.0
## Installation
This guide assumes that Openstack has already been deployed and Octavia has already been configured.
*Note: The following configurations should be done as an Openstack admin user*
### Install from PyPi
```shell
$ pip install a10-octavia
```
## Setup And Configuration
### 1. Enable A10 provider driver in Octavia config file
Add the following to `/etc/octavia/octavia.conf` under the `api-settings` section
```shell
enabled_provider_drivers = a10: 'The A10 Octavia driver.'
default_provider_driver = a10
```
### 2. Restart Openstack Octavia services
Use `systemctl` or similar a command to restart the Octavia API service.
### 3a. For use with vThunders
#### 3aa. Upload vThunder image and create a nova flavor for amphorae devices
Upload a vThunder image (QCOW2) and create a nova flavor with the required resources.
Recommended vThunder flavor settings:
* 8 vCPUs
* 8GB RAM
* 30GB disk
```shell
$ openstack image create --disk-format qcow2 --container-format bare --public --file vThunder414.qcow2 vThunder.qcow2
$ openstack flavor create --vcpu 8 --ram 8192 --disk 30 vThunder_flavor
```
Note down the `image ID` and `flavor ID` of created resources.
*Please contact support@a10networks.com for questions on acquiring and licensing vThunder images*
#### 3ab. Create the a10-octavia.conf file
```shell
$ mkdir /etc/a10
$ touch /etc/a10/a10-octavia.conf
```
*Note: Make sure the user running the Octavia service has access to these files*
#### 3ac. Sample a10-octavia.conf for vThunders
```shell
[vthunder]
default_vthunder_username = "admin"
default_vthunder_password = "a10"
default_axapi_version = "30"
[a10_controller_worker]
amp_image_owner_id = <admin_project_id>
amp_secgroup_list = <security_group_to_apply>
amp_flavor_id = <vthunder_flavor_id>
amp_boot_network_list = <netword_id_to_boot_vthunder_in_admin_project>
amp_ssh_key_name = <ssh_key_for_amphorae>
network_driver = a10_octavia_neutron_driver
workers = 2
amp_active_retries = 100
amp_active_wait_sec = 2
amp_image_id = <vthunder_image_id>
loadbalancer_topology = <SINGLE or ACTIVE_STANDBY>
[a10_health_manager]
udp_server_ip_address = <server_ip_address_for_health_monitor>
bind_port = 5550
bind_ip = <controller_ip_configured_to_listen_for_udp_health_packets>
heartbeat_interval = 5
heartbeat_key = insecure
heartbeat_timeout = 90
health_check_interval = 3
failover_timeout = 600
health_check_timeout = 3
health_check_max_retries = 5
[a10_house_keeping]
load_balancer_expiry_age = 3600
amphorae_expiry_age = 3600
```
Full list of options can be found here: [Config Options Module](https://github.com/a10networks/a10-octavia/blob/master/a10_octavia/common/config_options.py)
#### 3ad. Update security group to access vThunder AXAPIs
These settings are for ports allocated on the managment network. It's up to the operator to define the data network security rules.
When delopying with the STANDALONE loadbalancer topology
| Protocol | Port | Ingress | Egress | Purpose |
|:----------:|:-----:|:----------:|:-------:|:-----------------------------------------:|
| TCP | 80 | ✓ | ✓ | Communication with AXAPI |
| TCP | 443 | ✓ | ✓ | Communication with AXAPI |
| UDP | 5550 | | ✓ | Communication with Health Manager Service |
When deploying with the ACTIVE-STANDBY loadbalancer topology
| Protocol | Port | Ingress | Egress | Purpose |
|:----------:|:------:|:----------:|:-------:|:-------------------------------------------------:|
| TCP | 80 | ✓ | ✓ | Communication with AXAPI |
| TCP | 443 | ✓ | ✓ | Communication with AXAPI |
| UDP | ALL | ✓ | ✓ | For specifics contact support@a10networks.com |
### 3b. For use with hardware devices
#### 3ba. Create the a10-octavia.conf file
```shell
$ mkdir /etc/a10
$ touch a10-octavia.conf
```
#### 3bb. Sample a10-octavia.conf for hardware devices
```shell
[a10_controller_worker]
amp_secgroup_list = <security_group_to_apply>
amp_boot_network_list = <netword_id_to_boot_amphorae_in_admin_project>
amp_ssh_key_name = <ssh_key_for_amphorae>
network_driver = a10_octavia_neutron_driver
workers = 2
amp_active_retries = 100
amp_active_wait_sec = 2
loadbalancer_topology = SINGLE
[hardware_thunder]
devices = [
{
"project_id":"<project_id>",
"ip_address":"10.0.0.4",
"username":"<username>",
"password":"<password>",
"device_name":"<device_name>"
},
{
"project_id":"<another_project_id>",
"ip_address":"10.0.0.5",
"username":"<username>",
"password":"<password>",
"device_name":"<device_name>",
"partition_name" : "<partition_name>"
}
]
```
### 3c. Configuring High Availability for VThunders
<pre>
[a10_controller_worker]
amp_secgroup_list = <security_group_to_apply>
amp_boot_network_list = <netword_id_to_boot_amphorae_in_admin_project>
amp_ssh_key_name = <ssh_key_for_amphorae>
network_driver = a10_octavia_neutron_driver
workers = 2
amp_active_retries = 100
amp_active_wait_sec = 2
<b>loadbalancer_topology = ACTIVE_STANDBY</b>
</pre>
To enable HA deployment, when using vThunders, the `loadbalancer_topology` setting must be set to `ACTIVE_STANDBY`. In this deployment mode, two vThunders are created per tenant. The configurations will be synced between the vThunders.
### 3d. Configuring High Availability for hardware devices
It is expected for an operator to configure two hardware devices in a VRRPA set and an aVCS cluster. The IP address provided in the `[hardware_thunder]` configuration group must be the floating IP of the aVCS cluster. As the operator will configure VRRPA and aVCS out of band, it is not possible for openstack to verify that the provided IP address is for an aVCS cluster or a single device. For this reason, the `loadbalancer_topology` configuration setting is ignored by hardware devices.
<pre>
[a10_controller_worker]
network_driver = a10_octavia_neutron_driver
loadbalancer_topology = ACTIVE_STANDBY
[hardware_thunder]
devices = [
{
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
共149个文件
py:111个
txt:7个
service:3个
资源分类:Python库 所属语言:Python 资源全名:a10-octavia-0.2.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源推荐
资源详情
资源评论
收起资源包目录
Python库 | a10-octavia-0.2.0.tar.gz (149个子文件)
a10-health-manager 133B
a10-house-keeper 131B
a10-octavia-worker 133B
a10_adc_tree_create 1KB
a10_hard_delete_adc_tree 398B
a10_services_restart 137B
a10_setup_provider_vlan_poc 15KB
a10_spawn_lb 62B
AUTHORS 1KB
setup.cfg 2KB
ChangeLog 22KB
CHANGELOG 125B
alembic.ini 2KB
tox.ini 1KB
install-a10-octavia 972B
install_contrib_scripts 69B
pbr.json 46B
LICENSE 11KB
script.py.mako 494B
README.md 20KB
pull_request_template.md 1014B
not-zip-safe 1B
PKG-INFO 26KB
PKG-INFO 26KB
controller_worker.py 39KB
vthunder_tasks.py 35KB
a10_network_tasks.py 30KB
test_vthunder_tasks.py 25KB
test_a10_network_tasks.py 21KB
test_utils.py 20KB
vthunder_flows.py 18KB
a10_member_flows.py 18KB
a10_database_tasks.py 18KB
a10_load_balancer_flows.py 16KB
config_options.py 15KB
cert_tasks.py 12KB
test_cert_tasks.py 11KB
repositories.py 11KB
utils.py 10KB
a10_listener_flows.py 10KB
driver.py 9KB
test_a10_database_tasks.py 8KB
a10_pool_flows.py 8KB
a10_octavia_neutron.py 8KB
data_models.py 8KB
virtual_port_tasks.py 7KB
test_persist_tasks.py 6KB
a10_health_monitor_flows.py 6KB
driver_agent.py 6KB
endpoint.py 6KB
base_models.py 6KB
health_monitor_tasks.py 6KB
a10_l7rule_flows.py 5KB
exceptions.py 5KB
l7rule_tasks.py 5KB
a10_l7policy_flows.py 5KB
a10_compute_tasks.py 5KB
server_tasks.py 5KB
a10_config.py 5KB
l7policy_tasks.py 5KB
test_config_types.py 4KB
a10constants.py 4KB
persist_tasks.py 4KB
house_keeping.py 4KB
vthunder_heartbeat_udp.py 4KB
a10_house_keeper.py 4KB
a10_health_manager.py 4KB
service_group_tasks.py 4KB
virtual_server_tasks.py 4KB
test_a10_load_balancer_flows.py 3KB
test_health_monitor_tasks.py 3KB
test_virtual_port_tasks.py 3KB
a10_vthunder_db.py 3KB
model_base.py 3KB
test_service_group_tasks.py 3KB
policy.py 3KB
a10_health_manager.py 3KB
models.py 3KB
config_types.py 3KB
decorators.py 3KB
test_a10_member_flows.py 3KB
event_queue.py 2KB
openstack_mappings.py 2KB
consumer.py 2KB
data_models.py 2KB
env.py 2KB
utils.py 2KB
a10constants.py 2KB
api.py 2KB
test_virtual_server_tasks.py 2KB
test_server_tasks.py 2KB
common.py 2KB
example_config.py 2KB
ed9c523cf8ee_adding_ha_features.py 2KB
cli.py 1KB
models_old.py 1KB
a10_octavia_worker.py 1KB
vthunder.py 1KB
defaults.py 1KB
service.py 1KB
共 149 条
- 1
- 2
资源评论
挣扎的蓝藻
- 粉丝: 12w+
- 资源: 15万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功