このセクションでは、コンピュートノードに Neutron LBaaS (Load-Balancer-as-a-Service) v2 による仮想ロードバランサーのインストールと設定方法について紹介する。
インストール
openstack-rocky の yum リポジトリ(CentOS-Openstack-rocky.repo)を使って、 LBaaS v2 に必要なパッケージをインストールする。
[root@compute1 ~]# yum --enablerepo=centos-openstack-rocky,epel -y install openstack-neutron-lbaas haproxy net-tools
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
* base: ftp.riken.jp
* extras: ftp.riken.jp
* updates: ftp.riken.jp
base | 3.6 kB 00:00
centos-ceph-luminous | 2.9 kB 00:00
centos-openstack-rocky | 2.9 kB 00:00
centos-qemu-ev | 2.9 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
(1/4): centos-qemu-ev/7/x86_64/primary_db | 51 kB 00:03
(2/4): centos-ceph-luminous/7/x86_64/primary_db | 118 kB 00:04
(3/4): updates/7/x86_64/primary_db | 6.0 MB 00:24
(4/4): centos-openstack-rocky/7/x86_64/primary_db | 769 kB 00:32
パッケージ net-tools-2.0-0.22.20131004git.el7.x86_64 はインストール済みか最新バージョンです
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ haproxy.x86_64 0:1.5.18-7.el7 を インストール
---> パッケージ openstack-neutron-lbaas.noarch 1:13.0.0-1.el7 を インストール
--> 依存性の処理をしています: python-neutron-lbaas = 1:13.0.0-1.el7 のパッケージ: 1:openstack-neutron-lbaas-13.0.0-1.el7.noarch
--> 依存性の処理をしています: openstack-neutron >= 1:13 のパッケージ: 1:openstack-neutron-lbaas-13.0.0-1.el7.noarch
--> トランザクションの確認を実行しています。
---> パッケージ openstack-neutron.noarch 1:13.0.1-2.el7 を インストール
--> 依存性の処理をしています: dnsmasq-utils >= 2.76 のパッケージ: 1:openstack-neutron-13.0.1-2.el7.noarch
--> 依存性の処理をしています: keepalived のパッケージ: 1:openstack-neutron-13.0.1-2.el7.noarch
--> 依存性の処理をしています: dibbler-client のパッケージ: 1:openstack-neutron-13.0.1-2.el7.noarch
--> 依存性の処理をしています: conntrack-tools のパッケージ: 1:openstack-neutron-13.0.1-2.el7.noarch
---> パッケージ python-neutron-lbaas.noarch 1:13.0.0-1.el7 を インストール
--> 依存性の処理をしています: python2-barbicanclient >= 4.5.2 のパッケージ: 1:python-neutron-lbaas-13.0.0-1.el7.noarch
--> 依存性の処理をしています: python2-pyasn1-modules のパッケージ: 1:python-neutron-lbaas-13.0.0-1.el7.noarch
--> トランザクションの確認を実行しています。
---> パッケージ conntrack-tools.x86_64 0:1.4.4-3.el7_3 を インストール
--> 依存性の処理をしています: libnetfilter_cttimeout.so.1(LIBNETFILTER_CTTIMEOUT_1.1)(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64
--> 依存性の処理をしています: libnetfilter_cttimeout.so.1(LIBNETFILTER_CTTIMEOUT_1.0)(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64
--> 依存性の処理をしています: libnetfilter_cthelper.so.0(LIBNETFILTER_CTHELPER_1.0)(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64
--> 依存性の処理をしています: libnetfilter_queue.so.1()(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64
--> 依存性の処理をしています: libnetfilter_cttimeout.so.1()(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64
--> 依存性の処理をしています: libnetfilter_cthelper.so.0()(64bit) のパッケージ: conntrack-tools-1.4.4-3.el7_3.x86_64
---> パッケージ dibbler-client.x86_64 0:1.0.1-0.RC1.2.el7 を インストール
---> パッケージ dnsmasq-utils.x86_64 0:2.76-5.el7 を インストール
---> パッケージ keepalived.x86_64 0:1.3.5-6.el7 を インストール
--> 依存性の処理をしています: libnetsnmpmibs.so.31()(64bit) のパッケージ: keepalived-1.3.5-6.el7.x86_64
--> 依存性の処理をしています: libnetsnmpagent.so.31()(64bit) のパッケージ: keepalived-1.3.5-6.el7.x86_64
--> 依存性の処理をしています: libnetsnmp.so.31()(64bit) のパッケージ: keepalived-1.3.5-6.el7.x86_64
---> パッケージ python2-barbicanclient.noarch 0:4.7.0-1.el7 を インストール
---> パッケージ python2-pyasn1-modules.noarch 0:0.1.9-7.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ libnetfilter_cthelper.x86_64 0:1.0.0-9.el7 を インストール
---> パッケージ libnetfilter_cttimeout.x86_64 0:1.0.0-6.el7 を インストール
---> パッケージ libnetfilter_queue.x86_64 0:1.0.2-2.el7_2 を インストール
---> パッケージ net-snmp-agent-libs.x86_64 1:5.7.2-33.el7_5.2 を インストール
--> 依存性の処理をしています: libsensors.so.4()(64bit) のパッケージ: 1:net-snmp-agent-libs-5.7.2-33.el7_5.2.x86_64
---> パッケージ net-snmp-libs.x86_64 1:5.7.2-33.el7_5.2 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ lm_sensors-libs.x86_64 0:3.4.0-4.20160601gitf9185e5.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
================================================================================
インストール中:
haproxy x86_64 1.5.18-7.el7 base 834 k
openstack-neutron-lbaas noarch 1:13.0.0-1.el7 centos-openstack-rocky 15 k
依存性関連でのインストールをします:
conntrack-tools x86_64 1.4.4-3.el7_3 base 186 k
dibbler-client x86_64 1.0.1-0.RC1.2.el7 centos-openstack-rocky 409 k
dnsmasq-utils x86_64 2.76-5.el7 base 30 k
keepalived x86_64 1.3.5-6.el7 base 329 k
libnetfilter_cthelper x86_64 1.0.0-9.el7 base 18 k
libnetfilter_cttimeout x86_64 1.0.0-6.el7 base 18 k
libnetfilter_queue x86_64 1.0.2-2.el7_2 base 23 k
lm_sensors-libs x86_64 3.4.0-4.20160601gitf9185e5.el7
base 41 k
net-snmp-agent-libs x86_64 1:5.7.2-33.el7_5.2 updates 705 k
net-snmp-libs x86_64 1:5.7.2-33.el7_5.2 updates 749 k
openstack-neutron noarch 1:13.0.1-2.el7 centos-openstack-rocky 27 k
python-neutron-lbaas noarch 1:13.0.0-1.el7 centos-openstack-rocky 260 k
python2-barbicanclient noarch 4.7.0-1.el7 centos-openstack-rocky 119 k
python2-pyasn1-modules noarch 0.1.9-7.el7 base 59 k
トランザクションの要約
================================================================================
インストール 2 パッケージ (+14 個の依存関係のパッケージ)
総ダウンロード容量: 3.7 M
インストール容量: 12 M
Downloading packages:
(1/16): dnsmasq-utils-2.76-5.el7.x86_64.rpm | 30 kB 00:00
(2/16): libnetfilter_cthelper-1.0.0-9.el7.x86_64.rpm | 18 kB 00:00
(3/16): libnetfilter_cttimeout-1.0.0-6.el7.x86_64.rpm | 18 kB 00:00
(4/16): keepalived-1.3.5-6.el7.x86_64.rpm | 329 kB 00:00
(5/16): haproxy-1.5.18-7.el7.x86_64.rpm | 834 kB 00:00
(6/16): lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86 | 41 kB 00:00
(7/16): libnetfilter_queue-1.0.2-2.el7_2.x86_64.rpm | 23 kB 00:00
(8/16): conntrack-tools-1.4.4-3.el7_3.x86_64.rpm | 186 kB 00:00
(9/16): net-snmp-libs-5.7.2-33.el7_5.2.x86_64.rpm | 749 kB 00:01
(10/16): net-snmp-agent-libs-5.7.2-33.el7_5.2.x86_64.rpm | 705 kB 00:02
(11/16): openstack-neutron-13.0.1-2.el7.noarch.rpm | 27 kB 00:02
(12/16): openstack-neutron-lbaas-13.0.0-1.el7.noarch.rpm | 15 kB 00:01
(13/16): python-neutron-lbaas-13.0.0-1.el7.noarch.rpm | 260 kB 00:11
(14/16): python2-pyasn1-modules-0.1.9-7.el7.noarch.rpm | 59 kB 00:00
(15/16): python2-barbicanclient-4.7.0-1.el7.noarch.rpm | 119 kB 00:03
(16/16): dibbler-client-1.0.1-0.RC1.2.el7.x86_64.rpm | 409 kB 00:20
--------------------------------------------------------------------------------
合計 189 kB/s | 3.7 MB 00:20
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : haproxy-1.5.18-7.el7.x86_64 1/16
インストール中 : 1:net-snmp-libs-5.7.2-33.el7_5.2.x86_64 2/16
インストール中 : libnetfilter_cttimeout-1.0.0-6.el7.x86_64 3/16
インストール中 : libnetfilter_cthelper-1.0.0-9.el7.x86_64 4/16
インストール中 : dnsmasq-utils-2.76-5.el7.x86_64 5/16
インストール中 : libnetfilter_queue-1.0.2-2.el7_2.x86_64 6/16
インストール中 : conntrack-tools-1.4.4-3.el7_3.x86_64 7/16
インストール中 : dibbler-client-1.0.1-0.RC1.2.el7.x86_64 8/16
インストール中 : lm_sensors-libs-3.4.0-4.20160601gitf9185e5. 9/16
インストール中 : 1:net-snmp-agent-libs-5.7.2-33.el7_5.2.x86_ 10/16
インストール中 : keepalived-1.3.5-6.el7.x86_64 11/16
インストール中 : 1:openstack-neutron-13.0.1-2.el7.noarch 12/16
インストール中 : python2-barbicanclient-4.7.0-1.el7.noarch 13/16
インストール中 : python2-pyasn1-modules-0.1.9-7.el7.noarch 14/16
インストール中 : 1:python-neutron-lbaas-13.0.0-1.el7.noarch 15/16
インストール中 : 1:openstack-neutron-lbaas-13.0.0-1.el7.noar 16/16
検証中 : python2-pyasn1-modules-0.1.9-7.el7.noarch 1/16
検証中 : 1:net-snmp-libs-5.7.2-33.el7_5.2.x86_64 2/16
検証中 : python2-barbicanclient-4.7.0-1.el7.noarch 3/16
検証中 : lm_sensors-libs-3.4.0-4.20160601gitf9185e5. 4/16
検証中 : 1:openstack-neutron-13.0.1-2.el7.noarch 5/16
検証中 : dibbler-client-1.0.1-0.RC1.2.el7.x86_64 6/16
検証中 : libnetfilter_queue-1.0.2-2.el7_2.x86_64 7/16
検証中 : dnsmasq-utils-2.76-5.el7.x86_64 8/16
検証中 : 1:openstack-neutron-lbaas-13.0.0-1.el7.noar 9/16
検証中 : haproxy-1.5.18-7.el7.x86_64 10/16
検証中 : keepalived-1.3.5-6.el7.x86_64 11/16
検証中 : libnetfilter_cthelper-1.0.0-9.el7.x86_64 12/16
検証中 : 1:net-snmp-agent-libs-5.7.2-33.el7_5.2.x86_ 13/16
検証中 : libnetfilter_cttimeout-1.0.0-6.el7.x86_64 14/16
検証中 : conntrack-tools-1.4.4-3.el7_3.x86_64 15/16
検証中 : 1:python-neutron-lbaas-13.0.0-1.el7.noarch 16/16
インストール:
haproxy.x86_64 0:1.5.18-7.el7 openstack-neutron-lbaas.noarch 1:13.0.0-1.el7
依存性関連をインストールしました:
conntrack-tools.x86_64 0:1.4.4-3.el7_3
dibbler-client.x86_64 0:1.0.1-0.RC1.2.el7
dnsmasq-utils.x86_64 0:2.76-5.el7
keepalived.x86_64 0:1.3.5-6.el7
libnetfilter_cthelper.x86_64 0:1.0.0-9.el7
libnetfilter_cttimeout.x86_64 0:1.0.0-6.el7
libnetfilter_queue.x86_64 0:1.0.2-2.el7_2
lm_sensors-libs.x86_64 0:3.4.0-4.20160601gitf9185e5.el7
net-snmp-agent-libs.x86_64 1:5.7.2-33.el7_5.2
net-snmp-libs.x86_64 1:5.7.2-33.el7_5.2
openstack-neutron.noarch 1:13.0.1-2.el7
python-neutron-lbaas.noarch 1:13.0.0-1.el7
python2-barbicanclient.noarch 0:4.7.0-1.el7
python2-pyasn1-modules.noarch 0:0.1.9-7.el7
完了しました!
[root@compute1 ~]#
エージェントを用いた LBaaS v2 の設定
Neuton サービスの設定ファイル( /etc/neutron/neutron.conf )を編集し、以下設定する。
[root@compute1 ~]# vi /etc/neutron/neutron.conf
LBaaS v2 サービスプラグインを service_plugins に追加する。既存の設定項目の後続に、カンマ区切りで指定する。
#service_plugins =
↓(変更)
service_plugins = router,neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2
LBaaS 設定ファイル( /etc/neutron/neutron_lbaas.conf )を編集し、以下設定する。
[root@compute1 ~]# vi /etc/neutron/neutron_lbaas.conf
[service_providers] セクション内の service_provider 設定ディレクティブにLBaaS v2サービスプロバイダを追加する。
[service_providers]
#
#service_provider =
service_provider = LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
LBaaS エージェント設定ファイル( /etc/neutron/lbaas_agent.ini )を編集し、以下設定する。
[root@compute1 ~]# vi /etc/neutron/lbaas_agent.ini
[DEFAULT] セクションに、仮想インタフェースを管理するドライバを選択する。interface_driver には、Neutron サービスの仮想ネットワークで Open vSwitch を使用している場合には openvswitchを指定し、Linux bridgeを指定している場合には linuxbridge を指定する。
[DEFAULT]
#interface_driver = <None>
device_driver = neutron_lbaas.drivers.haproxy.namespace_driver.HaproxyNSDriver
interface_driver = linuxbridge
[haproxy] セクションに、haproxy のユーザーグループを指定する。
#user_group = nogroup
user_group = haproxy
インストールの最終作業
Neutron LBaaS v2 サービスの自動起動を有効化する。
■ 自動起動の有効化
[root@compute1 ~]# systemctl enable neutron-lbaasv2-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/neutron-lbaasv2-agent.service to /usr/lib/systemd/system/neutron-lbaasv2-agent.service.
[root@compute1 ~]#
■ 自動起動の状態確認
[root@compute1 ~]# systemctl is-enabled neutron-lbaasv2-agent
enabled
[root@compute1 ~]#
Neutron LBaaS v2 サービスを再起動する。
■ 再起動
[root@compute1 ~]# systemctl restart neutron-lbaasv2-agent
[root@compute1 ~]#
■ 起動状態の確認
[root@compute1 ~]# systemctl status neutron-lbaasv2-agent
● neutron-lbaasv2-agent.service - OpenStack Neutron Load Balancing as a Service (API v2.x) Agent
Loaded: loaded (/usr/lib/systemd/system/neutron-lbaasv2-agent.service; enabled; vendor preset: disabled)
Active: active (running) since 土 2018-11-03 23:27:38 JST; 5s ago
Main PID: 2191 (neutron-lbaasv2)
Tasks: 1
CGroup: /system.slice/neutron-lbaasv2-agent.service
└─2191 /usr/bin/python2 /usr/bin/neutron-lbaasv2-agent --config-fi...
11月 03 23:27:38 compute1 systemd[1]: Started OpenStack Neutron Load Balan...t.
11月 03 23:27:38 compute1 systemd[1]: Starting OpenStack Neutron Load Bala.....
Hint: Some lines were ellipsized, use -l to show in full.
[root@compute1 ~]#