저는 실제로 OpenStack(Stein)을 사용하여 회사를 위한 프라이빗 클라우드를 구축하고 있습니다. 공식 웹사이트의 튜토리얼을 따랐는데 클라우드 인스턴스에서 메타데이터를 가져오는 것을 제외하면 모든 것이 잘 작동하는 것 같습니다.
인프라를 설정하는 방법을 설명하겠습니다.
KVM 호스트에 설치된 모든 OpenStack(2xXeon 32 코어, 320Go RAM, 2To HDD,...)
가상 머신을 다음과 같이 설정했습니다.
- openstack-controller001 192.168.50.11
- openstack-compute001 192.168.50.41
- openstack-storage001 192.168.50.61(Cinder용)
- db001 192.168.50.81(데이터베이스와 컨트롤러가 동일한 서버에 있지 않음)
- ldap001 192.168.50.251(아직 LDAP를 사용하지 않고 DNS 및 NTP 서버만 사용)
클라우드 이미지에서 생성된 Ubuntu 또는 Debian의 새 인스턴스를 시작할 때 SSH를 통해 이러한 가상 머신에 연결할 수 없으며 키 쌍이 항상 거부됩니다(오류: 권한 거부됨). 몇 가지 조사 끝에 가상 머신이 호스트에서 SSH 개인 키를 업로드하지 않는다는 것을 깨달았습니다. VM이 메타데이터 프록시 서버 대신 가상 네트워크의 DHCP 서버 IP 주소를 사용하여 메타데이터 서버에 연결하는 것 같습니다. 올바르게 기억한다면 컨트롤러는 무엇입니까?
[ 15.840973] cloud-init[386]: 2019-05-20 05:53:58,124 - url_helper.py[WARNING]: Calling 'http://172.16.10.10/latest/meta-data/instance-id' failed [0/120s]: request error [HTTPConnectionPool(host='172.16.10.10', port=80): Max retries exceeded with url: /latest/meta-data/instance-id (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f098d1c0e10>: Failed to establish a new connection: [Errno 111] Connection refused',))]
172.16.10.10은 내 가상 네트워크(172.16.0.0/16, DHCP 범위 172.16.10.10~172.16.20.254)의 DHCP 서버를 나타냅니다. 구성이 올바른 것처럼 보이지만 뭔가 잘못된 것 같습니다.
/etc/neutron/neutron.conf(openstack-controller001)
[DEFAULT]
# ...
nova_metadata_host = openstack-controller001
metadata_proxy_shared_secret = XXXXXXXXXXXXXXXXXX
/etc/nova/nova.conf(openstack-compute001)
[neutron]
# ...
service_metadata_proxy = true
metadata_proxy_shared_secret = XXXXXXXXXXXXXXXXXX
답변1
당신의 답변에 감사드립니다.
메타데이터 서버는 openstack-controller001에서 실행됩니다.
[admin@openstack-controller001 ~]$ systemctl status neutron-metadata-agent
\u25cf neutron-metadata-agent.service - OpenStack Neutron Metadata Agent
Loaded: loaded (/usr/lib/systemd/system/neutron-metadata-agent.service; enabled; vendor preset: disabled)
Active: active (running) since \u6708 2019-05-20 14:45:59 JST; 23h ago
Main PID: 15329 (/usr/bin/python)
CGroup: /system.slice/neutron-metadata-agent.service
\u251c\u250015329 /usr/bin/python2 /usr/bin/neutron-metadata-agent --config-...
\u251c\u250015357 /usr/bin/python2 /usr/bin/neutron-metadata-agent --config-...
\u2514\u250015358 /usr/bin/python2 /usr/bin/neutron-metadata-agent --config-...
5\u6708 20 14:45:59 openstack-controller001.adoc.local systemd[1]: Stopped Open...
5\u6708 20 14:45:59 openstack-controller001.adoc.local systemd[1]: Started Open...
Hint: Some lines were ellipsized, use -l to show in full.
내 VM이 169.254.169.254 서버에 액세스할 수 있는지는 모르겠지만 네트워크 네임스페이스에서는 액세스할 수 있습니다.
[admin@openstack-controller001 ~]$ openstack network list
+--------------------------------------+---------------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+---------------+--------------------------------------+
| 838b6191-33d6-4683-958e-cee434518743 | provider | d524b6e6-24ad-4a28-9482-b03f4bf22690 |
| c6ed4cfe-43b4-42b7-8fb5-f205a962f9f7 | adoc-net-main | 053681d8-4d5c-4ef4-8be7-f2276d43b26c |
+--------------------------------------+---------------+--------------------------------------+
[admin@openstack-controller001 ~]$ ip netns
qdhcp-838b6191-33d6-4683-958e-cee434518743 (id: 0)
qrouter-3a164855-6c8f-447c-8b0f-49e86d823488 (id: 2)
qdhcp-c6ed4cfe-43b4-42b7-8fb5-f205a962f9f7 (id: 1)
[root@openstack-controller001 admin]# ip netns exec qdhcp-c6ed4cfe-43b4-42b7-8fb5-f205a962f9f7 ping 169.254.169.254
PING 169.254.169.254 (169.254.169.254) 56(84) bytes of data.
64 bytes from 169.254.169.254: icmp_seq=1 ttl=64 time=0.046 ms
64 bytes from 169.254.169.254: icmp_seq=2 ttl=64 time=0.038 ms
64 bytes from 169.254.169.254: icmp_seq=3 ttl=64 time=0.046 ms
64 bytes from 169.254.169.254: icmp_seq=4 ttl=64 time=0.048 ms
64 bytes from 169.254.169.254: icmp_seq=5 ttl=64 time=0.033 ms
VM이 DHCP 서버에서 로컬 메타데이터 서버를 찾는 것이 정상인가요?