创建 Octavia Loadbalancer 失败并显示 "Nova failed to build the instance due to: Invalid key_name provided"

Creating octavia Loadbalancer fails with "Nova failed to build the instance due to: Invalid key_name provided"

我正在尝试通过 kolla-ansible 安装 OpenStack。 具有 3 个控制平面节点和 2 个计算节点的集群已启动并且 运行。 我现在将 Octavia LBaaS 和 运行 添加到一个问题中。 当我尝试在 horizon GUI 中创建负载平衡器时,失败并在 /var/log/kolla/octavia/octavia-worker.log:

中出现以下错误
2019-10-22 14:39:35.969 24 INFO octavia.controller.queue.endpoint [-] Creating load balancer '8789f171-3a40-40dd-bcf3-f0ab02844eba'...
2019-10-22 14:39:36.204 24 INFO octavia.network.drivers.neutron.allowed_address_pairs [-] Port 5bc14530-cbd9-4937-8263-864d8375967e already exists. Nothing to be done.
2019-10-22 14:39:37.265 24 INFO octavia.controller.worker.tasks.database_tasks [-] Created Amphora in DB with id f16f47ac-27fa-44a3-a896-a2c436baf0fe
2019-10-22 14:39:37.428 24 INFO octavia.certificates.generator.local [-] Signing a certificate request using OpenSSL locally.
2019-10-22 14:39:37.428 24 INFO octavia.certificates.generator.local [-] Using CA Certificate from config.
2019-10-22 14:39:37.428 24 INFO octavia.certificates.generator.local [-] Using CA Private Key from config.
2019-10-22 14:39:37.429 24 INFO octavia.certificates.generator.local [-] Using CA Private Key Passphrase from config.
2019-10-22 14:39:38.905 24 ERROR octavia.compute.drivers.nova_driver [-] Nova failed to build the instance due to: Invalid key_name provided. (HTTP 400) (Request-ID: req-76427fa0-ea35-4d4b-8173-f72d0c6355aa): BadRequest: Invalid key_name provided. (HTTP 400) (Request-ID: req-76427fa0-ea35-4d4b-8173-f72d0c6355aa)

在 /etc/octavia/octavia.conf keyname 中设置如下:

[controller_worker]
amp_ssh_key_name = octavia_ssh_key
amp_boot_network_list = 92df8748-2dfc-4270-8fef-d5163ef7ee56
amp_image_tag = amphora
amp_secgroup_list = a818a8c8-d8df-4886-a62a-dbcf29aa7e79
amp_flavor_id = 805ec684-b560-476e-938b-32b0fa4e6d16
...

一个 openstack 密钥对列表产生:

+-----------------+-------------------------------------------------+
| Name            | Fingerprint                                     |
+-----------------+-------------------------------------------------+
| user1           | aa:aa:aa:aa:85:2e:0d:b7:35:0a:c5:7e:3f:67:e5:a5 |
| user2           | aa:aa:aa:aa:fc:67:12:c6:20:3e:3b:bc:7a:75:35:cc |
| octavia_ssh_key | 28:b2:83:b1:e2:ee:c7:72:dc:bc:2e:3f:6e:ac:e2:61 |
+-----------------+-------------------------------------------------+

由于键名在 octavia.conf 中设置为 "octavia_ssh_key" 并且密钥对在 openstack 中列在该名称下,我不确定是什么导致了错误。为什么 nova 无法找到正确的密钥对来构建 ampora 镜像?

如有任何关于我还可以调试或还需要配置什么以使 Octavia LBaaS 正常工作的想法,我们将不胜感激。

kolla-ansible版本:stable/stein

祝一切顺利,感谢阅读本文!

比约恩

我想您已经与管理员用户创建了密钥对 "octavia_ssh_key"。

您可以尝试用 octavia 用户重新创建这个 ;)

openstack keypair create octavia_ssh_key \
  --os-username octavia \
  --os-password "$(cat /etc/kolla/passwords.yml | grep octavia_keystone_password | awk '{ print  }')"

尝试使用 Octavia 用户创建密钥...绝对可以正常工作