
Openstack Ansible によって作成されたコンテナーは実行されていましたが、インターネットにアクセスできません。ルーティングを手動で追加すると、次のエラーが発生します。
Err:1 http://archive.ubuntu.com/ubuntu bionic InRelease
Clearsigned file isn't valid, got 'NOSPLIT' (does the network require authentication?)
# lxc-ls -f
NAME STATE AUTOSTART GROUPS IPV4 IPV6 UNPRIVILEGED
infra1_galera_container-40eb8c2c RUNNING 1 onboot, openstack 192.168.56.232 - false
infra1_glance_container-fe32f950 RUNNING 1 onboot, openstack 192.168.56.194, 10.200.75.51 - false
infra1_heat_api_container-fcdda89c RUNNING 1 onboot, openstack 192.168.56.207 - false
infra1_horizon_container-29382c02 RUNNING 1 onboot, openstack 192.168.56.140 - false
infra1_keystone_container-c4b4bca5 RUNNING 1 onboot, openstack 192.168.56.61 - false
infra1_memcached_container-667ec859 RUNNING 1 onboot, openstack 192.168.56.183 - false
infra1_nova_api_container-6dcd2a9b RUNNING 1 onboot, openstack 192.168.56.114 - false
infra1_placement_container-d9a47077 RUNNING 1 onboot, openstack 192.168.56.218 - false
infra1_rabbit_mq_container-34797cf1 RUNNING 1 onboot, openstack 192.168.56.210 - false
infra1_repo_container-02a62c03 RUNNING 1 onboot, openstack 192.168.56.94 - false
infra1_utility_container-a23621d0 RUNNING 1 onboot, openstack 192.168.56.90 - false
また、私のLXCブリッジには別のネットワークがあり、割り当てられていません
lxcbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.3.1 netmask 255.255.255.0 broadcast 10.0.3.255
私の openstack_user_config.yml は、192.168.56.0/24 ネットワーク上のすべてのインフラ コンポーネントを定義します。
プレイブックを実行すると、デフォルトでコンテナーでインターネットにアクセスできないのはなぜですか? 何か見落としがありますか?
答え1
lxc コンテナへのインターネット アクセスは、lxcbr0 を通じて提供されます。各コンテナには、eth0 (デフォルト インターフェイス) に割り当てられた IP 10.0.3.0/24 サブネットが割り当てられます。私も同じ問題を抱えていますが、これは dnsmasq が lxcbr0 に送信された DHCP 要求を処理しないことが原因です。dnsmasq を再起動すると機能します。私が実行した手順は次のとおりです。
コントローラー ホストで tcpdump を使用して DHCP 要求が処理されているかどうかを確認します。
tcpdump -ntv -i lxcbr0
dnsmasq を再起動します。
ps aux | grep dnsmasq
# note pid and copy dnsmasq command
kill dnsmasq-pid
rerun dnsmasq command
または、systemctl start lxc-dnsmasq.service を使用します。
答え2
確認する必要があるはずです/etc/resolv.conf
コンテナ内の apt 更新が失敗したため、正しいネームサーバーは追加されません。