解决异常错误oslo_service.periodic_task AttributeError: ‘ComputeNode’ object has no attribute ‘nodename’。


OpenStack中节点出现类似如下错误:

2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task [req-088dba9d-9873-4a1c-9e41-bbd24489ed4c - - - - -] Error during Manager.inventory_host: AttributeError: ‘ComputeNode’ object has no attribute ‘nodename’
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task Traceback (most recent call last):
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task File “/usr/local/lib/python3.6/site-packages/zun/compute/compute_node_tracker.py”, line 109, in _get_node_rp_uuid
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task context, node.hostname)[‘uuid’]
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task File “/usr/local/lib/python3.6/site-packages/zun/scheduler/client/report.py”, line 2136, in get_provider_by_name
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task raise exception.ResourceProviderNotFound(name_or_uuid=name)
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task zun.common.exception.ResourceProviderNotFound: No such resource provider zun.
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task During handling of the above exception, another exception occurred:
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task Traceback (most recent call last):
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task File “/usr/local/lib/python3.6/site-packages/oslo_service/periodic_task.py”, line 216, in run_periodic_tasks
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task task(self, context)
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task File “/usr/local/lib/python3.6/site-packages/zun/compute/manager.py”, line 1109, in inventory_host
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task rt.update_available_resources(context)
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task File “/usr/local/lib/python3.6/site-packages/zun/compute/compute_node_tracker.py”, line 76, in update_available_resources
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task node.rp_uuid = self._get_node_rp_uuid(context, node)
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task File “/usr/local/lib/python3.6/site-packages/zun/compute/compute_node_tracker.py”, line 111, in _get_node_rp_uuid
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task raise exception.ComputeHostNotFound(host=node.nodename)
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task AttributeError: ‘ComputeNode’ object has no attribute ‘nodename’
2023-01-08 19:28:16.827 7064 ERROR oslo_service.periodic_task


解决方法:

检查一下配置文件:
例如:
/etc/zun/zun.conf

里面有个 compute 组,下面有个选项类似
host_shared_with_nova = true

这里的值需要根据实际修改,如果zun和nova部署在一起则设置为true,否则设置为false,或者如下注释掉:

[compute]
#host_shared_with_nova = true


2023-01-08 19:43:35.688 7438 ERROR zun.compute.manager [req-d1112641-a1ff-473e-9853-ebaa617bb49b f1e02ae68a2a4245a7e998bdc2b88b4c c67fa44f78a241af9915eed397f20328 default - -] Error occurred while calling Docker create API: Docker internal error: 500 Server Error for http+docker://localhost/v1.26/networks/create: Internal Server Error (“legacy plugin: Post “http://127.0.0.1:23750/Plugin.Activate”: dial tcp 127.0.0.1:23750: connect: connection refused”).: zun.common.exception.DockerError: Docker internal error: 500 Server Error for http+docker://localhost/v1.26/networks/create: Internal Server Error (“legacy plugin: Post “http://127.0.0.1:23750/Plugin.Activate”: dial tcp 127.0.0.1:23750: connect: connection refused”).


解决方案:
检查 kuryr-libnetwork 服务的状态及日志
如果返现连接有问题,到控制节点删除用户重新添加,并授权用户为管理员角色:
openstack user del kuryr
openstack user create --domain default --password-prompt kuryr
openstack role add --project services --user kuryr admin