事象内容
登録した LoadBalancer を削除するためには、LoadBalancer に設定しているリスナーなどを削除する必要がある。コマンドでリスナーを削除しようとすると、以下メッセージが出て、削除できない。
Invalid state PENDING_UPDATE of loadbalancer
LoadBalancer に設定されたリスナーの一覧を表示する。
[root@controller ~]# neutron lbaas-listener-list neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead. +--------------------------------------+--------------------------------------+------------+----------------------------------+----------+---------------+----------------+ | id | default_pool_id | name | tenant_id | protocol | protocol_port | admin_state_up | +--------------------------------------+--------------------------------------+------------+----------------------------------+----------+---------------+----------------+ | 1bc9b177-f3b6-44a4-a7ad-2249fd60ceca | ae3a16d3-eb5e-4de6-b389-24924522f149 | Listener 1 | b9644b0689c4469baa45f9acb009d860 | HTTP | 80 | True | +--------------------------------------+--------------------------------------+------------+----------------------------------+----------+---------------+----------------+ [root@controller ~]#
LoadBalancer に設定するリスナー( Listener 1 )を削除しようとすると、Invalid state PENDING_UPDATE of loadbalancer メッセージが出て削除できない。
[root@controller ~]# neutron lbaas-listener-delete "Listener 1" neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead. Invalid state PENDING_UPDATE of loadbalancer resource f4155304-2a4a-43b5-9e2e-a0db060f6be4 Neutron server returns request_ids: ['req-41c7ec99-9380-4a40-93e6-b3ff908df700'] [root@controller ~]#
解決方法
neutron データベースに接続する。
[root@controller ~]# mysql -D neutron -u neutron -p Enter password: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 671 Server version: 10.1.20-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [neutron]>
登録されている LoadBalancer の情報を取得する。
MariaDB [neutron]> select * from lbaas_loadbalancers; +----------------------------------+--------------------------------------+-----------------+-------------+--------------------------------------+--------------------------------------+-------------+----------------+---------------------+------------------+-----------+ | project_id | id | name | description | vip_port_id | vip_subnet_id | vip_address | admin_state_up | provisioning_status | operating_status | flavor_id | +----------------------------------+--------------------------------------+-----------------+-------------+--------------------------------------+--------------------------------------+-------------+----------------+---------------------+------------------+-----------+ | b9644b0689c4469baa45f9acb009d860 | f4155304-2a4a-43b5-9e2e-a0db060f6be4 | Load Balancer 1 | | 3352b534-01f6-407d-b5f5-3b9b28c50117 | 812d8088-e027-452b-b006-3124bbee81c2 | 172.16.2.2 | 1 | PENDING_UPDATE | ONLINE | NULL | +----------------------------------+--------------------------------------+-----------------+-------------+--------------------------------------+--------------------------------------+-------------+----------------+---------------------+------------------+-----------+ 1 row in set (0.00 sec) MariaDB [neutron]>
登録されている LoadBalancer の情報( id、name、provisioning_status )を再度取得する。 provisioning_status が PENDING_UPDATE の状態になっていることが確認できる。
MariaDB [neutron]> select id,name,provisioning_status from lbaas_loadbalancers; +--------------------------------------+-----------------+---------------------+ | id | name | provisioning_status | +--------------------------------------+-----------------+---------------------+ | f4155304-2a4a-43b5-9e2e-a0db060f6be4 | Load Balancer 1 | PENDING_UPDATE | +--------------------------------------+-----------------+---------------------+ 1 row in set (0.01 sec) MariaDB [neutron]>
登録されている LoadBalancer の provisioning_status を Active に更新する。
MariaDB [neutron]> update lbaas_loadbalancers set provisioning_status='ACTIVE' where id='f4155304-2a4a-43b5-9e2e-a0db060f6be4'; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 MariaDB [neutron]>
登録されている LoadBalancer の情報( id、name、provisioning_status )を再度取得し、provisioning_status が Active の状態になっていることを確認する。
MariaDB [neutron]> select id,name,provisioning_status from lbaas_loadbalancers; +--------------------------------------+-----------------+---------------------+ | id | name | provisioning_status | +--------------------------------------+-----------------+---------------------+ | f4155304-2a4a-43b5-9e2e-a0db060f6be4 | Load Balancer 1 | ACTIVE | +--------------------------------------+-----------------+---------------------+ 1 row in set (0.00 sec) MariaDB [neutron]>
データベースへの接続を終了する。
MariaDB [neutron]> exit Bye [root@controller ~]#
LoadBalancer に設定されているリスナーの一覧を取得する。
[root@controller ~]# neutron lbaas-listener-list neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead. +--------------------------------------+--------------------------------------+------------+----------------------------------+----------+---------------+----------------+ | id | default_pool_id | name | tenant_id | protocol | protocol_port | admin_state_up | +--------------------------------------+--------------------------------------+------------+----------------------------------+----------+---------------+----------------+ | 1bc9b177-f3b6-44a4-a7ad-2249fd60ceca | ae3a16d3-eb5e-4de6-b389-24924522f149 | Listener 1 | b9644b0689c4469baa45f9acb009d860 | HTTP | 80 | True | +--------------------------------------+--------------------------------------+------------+----------------------------------+----------+---------------+----------------+ [root@controller ~]#
これで、リスナーが削除できる。
[root@controller ~]# neutron lbaas-listener-delete 1bc9b177-f3b6-44a4-a7ad-2249fd60ceca neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead. Deleted listener(s): 1bc9b177-f3b6-44a4-a7ad-2249fd60ceca [root@controller ~]#