当前位置: 首页 > 科技观察

LXD2.0系列(十一):LXD与OpenStack

时间:2023-03-12 18:17:40 科技观察

这是LXD2.0系列介绍文章的第十一篇。LXD入门安装和配置您的第一个LXD容器资源控制图像管理LXD中的远程托管和容器迁移DockerLXD中的LXD实时迁移LXD和Juju简介首先很抱歉延迟。我花了很长时间才让一切正常工作。我第一次尝试使用devstack遇到了一些我必须修复的问题。然而,即便如此,我仍然无法让网络正常工作。我最终放弃了devstack,并尝试使用用户友好的Juju来部署一个完整的UbuntuOpenStack和“conjure-up”。它终于奏效了!下面介绍如何使用LXD容器而不是VM运行完整的OpenStack,并在LXD容器中运行所有这些容器(嵌套!)。要求这篇文章假设你有一个有效的LXD设置,提供容器网络访问,并且你有一个非常强大的CPU,大约50GB的容器空间和至少16GB的RAM。请记住,我们在这里运行的是一个成熟的OpenStack,它不是很轻量级!设置容器OpenStack由许多不同的组件组成,它们执行不同的操作。有些需要一些额外的权限,为了使设置更容易,我们将使用特权容器。我们将配置容器以支持嵌套,预加载所有需要的内核模块,并允许它访问/dev/mem(显然需要)。请注意,这意味着该容器禁用了LXD容器的大部分安全功能。然而,由OpenStack本身生成的容器将没有特权,并且可以正常使用LXD的安全功能。lxclaunchubuntu:16.04openstack-csecurity.privileged=true-csecurity.nesting=true-c"linux.kernel_modules=iptable_nat,ip6table_nat,ebtables,openvswitch"lxcconfigdeviceaddopenstackmemunix-charpath=/dev/memLXD有个小bug,会尝试loadalready主机上加载的内核模块。这已经在LXD2.5中修复,并将在LXD2.0.6中修复,但在此之前可以使用以下方法:lxcexecopenstack--ln-s/bin/true/usr/local/bin/modprobe我们需要添加几个PPA并安装conjure-up,这是我们用来安装OpenStack的部署工具。lxcexecopenstack--apt-add-repositoryppa:conjure-up/next-ylxcexecopenstack--apt-add-repositoryppa:juju/stable-ylxcexecopenstack--aptupdatelxcexecopenstack--aptdist-upgrade-ylxcexecopenstack--aptinstallconjure-up-y***一个step是在容器内部配置LXD网络。所有问题都选择默认,除了:Usedirstoragebackend(zfsisnotusedinnestedcontainers)DonotconfigureIPv6network(conjure-up/jujuisnotcompatiblewithit)lxcexecopenstack--lxdinit现在配置容器,现在我们部署OpenStack!使用conjure-up部署OpenStack如前所述,我们使用conjure-up部署OpenStack。这是一个很好的用户友好工具,用于与Juju交互以部署复杂的服务。首先:lxcexecopenstack--sudo-uubuntu-iconjure-up选择“OpenStackwithNovaLXD”选择“localhost”作为部署目标(使用LXD)点击“部署所有剩余应用程序”接下来,将部署OpenStack。整个过程可能需要一个多小时,具体取决于您运行的机器。您会看到所有服务都将分配一个容器,然后进行部署并最终互连。Conjure-Up部署OpenStack部署完成后,会出现安装完成的界面。它导入一些初始图像,设置SSH权限,配置网络***并显示面板的IP地址。访问面板并生成容器面板在容器中运行,因此您不能直接从浏览器访问它。最简单的方法是设置NAT规则:lxcexecopenstack--iptables-tnat-APREROUTING-ptcp--dport80-jDNAT--to其中是conjure-up给你的面板的IP地址安装结束。您现在可以获取“openstack”容器的IP地址(来自lxcinfoopenstack)并将您的浏览器指向:http:///horizo??n。第一次加载可能需要几分钟。显示登录屏幕后,输入默认登录名和密码(admin/openstack),您将看到OpenStack欢迎面板!oslxd-dashboard现在可以选择左侧的“项目”选项卡以转到“实例”页面。要使用nova-lxd启动一个新实例,请单击“启动实例”,选择您想要的图像、网络等,您的实例将被创建。一旦运行,您可以为其分配一个浮动IP,这将允许您从“openstack”容器内访问您的实例。总结OpenStack是一个非常复杂的软件,您不会希望在家中或单个服务器上运行它。然而,无论如何,将这些服务包含在您机器上的容器中是非常有趣的。conjure-up是部署此类复杂软件的绝佳工具,Juju在幕后推动部署,为每个单独的服务使用LXD容器,直到实例本身。这也是嵌套多层容器真正有意义的少数情况之一!其他信息conjure-up网站:http://conjure-up.ioJuju网站:http://www.ubuntu.com/cloud/JujuLXD的主要网站:https://linuxcontainers.org/lxdLXD的GitHub存储库:https://github.com/lxc/lxdLXD的邮件列表:https://lists.linuxcontainers.orgLXD的IRC频道:irc.freenode.net上的#lxcontainers如果你不想或不能在你的机器上安装LXD,你可以试试网络上的LXD在线版本。关于作者:我是StéphaneGraber。我是LXC和LXD项目负责人,目前在我位于加拿大魁北克省蒙特利尔的CanonicalInc.担任LXD技术负责人。