51学通信论坛2017新版

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1454|回复: 0
打印 上一主题 下一主题

LXD 2.0 系列(十一):LXD 和 OpenStack

[复制链接]

 成长值: 15613

  • TA的每日心情
    开心
    2022-7-17 17:50
  • 2444

    主题

    2544

    帖子

    7万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    74104
    跳转到指定楼层
    楼主
    发表于 2017-9-16 21:30:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


    conjure-up 是部署这种复杂软件的一个很好的工具,背后使用 Juju 驱动部署,为每个单独的服务使用 LXD 容器,最后是实例本身。 它也是少数几个容器嵌套多层并实际上有意义的情况之一! -- Stéphane Graber
    本文导航

      -介绍 …… 13%
      -要求 …… 20%
      -设置容器 …… 23%
      -用 conjure-up 部署 OpenStack …… 48%
      -访问面板并生成一个容器 …… 60%
      -总结 …… 76%
      -额外信息 …… 82%
    编译自: https://www.stgraber.org/2016/10/26/lxd-2-0-lxd-and-openstack-1112/
    作者: Stéphane Graber
    译者: geekpi

    这是 LXD 2.0 系列介绍文章的第十一篇。

      LXD 入门[1]
      安装与配置[2]
      你的第一个 LXD 容器[3]
      资源控制[4]
      镜像管理[5]
      远程主机及容器迁移[6]
      LXD 中的 Docker[7]
      LXD 中的 LXD[8]
      实时迁移[9]
      LXD 和 Juju[10]
      LXD 和 OpenStack[11]
      调试,及给 LXD 做贡献[12]
    介绍


    首先对这次的延期抱歉。为了让一切正常我花了很长时间。我第一次尝试是使用 devstack 时遇到了一些必须解决问题。 然而即使这样,我还是不能够使网络正常。
    我终于放弃了 devstack,并使用用户友好的 Juju 尝试使用 “conjure-up” 部署完整的 Ubuntu OpenStack。它终于工作了!
    下面是如何运行一个完整的 OpenStack,使用 LXD 容器而不是 VM,并在 LXD 容器中运行所有这些(嵌套的!)。要求


    这篇文章假设你有一个可以工作的 LXD 设置,提供容器网络访问,并且你有一个非常强大的 CPU,大约 50GB 给容器空间和至少 16G B的内存。
    记住,我们在这里运行一个完整的 OpenStack,这东西不是很轻量!设置容器


    OpenStack 由大量不同做不同事情的组件组成。 一些需要一些额外的特权,为了可以使设置更简单,我们将使用特权容器。
    我们将配置支持嵌套的容器,预加载所有需要的内核模块,并允许它访问 /dev/mem(显然是需要的)。
    请注意,这意味着 LXD 容器的大部分安全特性对该容器被禁用。 然而由 OpenStack 自身产生的容器将是无特权的,并且可以正常使用 LXD 的安全特性。
    lxc launch ubuntu:16.04 openstack -c security.privileged=true -c security.nesting=true -c "linux.kernel_modules=iptable_nat, ip6table_nat, ebtables, openvswitch"
    lxc config device add openstack mem unix-char path=/dev/mem

    LXD 中有一个小 bug,它会尝试加载已经加载到主机上的内核模块。这已在LXD 2.5中得到修复,并将在LXD 2.0.6 中修复,但在此之前,可以使用以下方法:
    lxc exec openstack -- ln -s /bin/true /usr/local/bin/modprobe

    我们需要加几条 PPA 并安装 conjure-up,它是我们用来安装 OpenStack 的部署工具。
    lxc exec openstack -- apt-add-repository ppa:conjure-up/next -y
    lxc exec openstack -- apt-add-repository ppa:juju/stable -y
    lxc exec openstack -- apt update
    lxc exec openstack -- apt dist-upgrade -y
    lxc exec openstack -- apt install conjure-up -y

    最后一步是在容器内部配置 LXD 网络。
    所有问题都选择默认,除了:

      使用 dir 存储后端( zfs 不在嵌套容器中用)
      不要配置 IPv6 网络(conjure-up/juju 不太兼容它)
    lxc exec openstack -- lxd init

    现在配置完容器了,现在我们部署 OpenStack!用 conjure-up 部署 OpenStack


    如先前提到的,我们用 conjure-up 部署 OpenStack。
    这是一个很棒的用户友好的可以与 Juju 交互来部署复杂服务的工具。
    首先:
    lxc exec openstack -- sudo -u ubuntu -i conjure-up


      选择 “OpenStack with NovaLXD”
      选择 “localhost” 作为部署目标(使用 LXD)
      点击 “Deploy all remaining applications”

    接下来会部署 OpenStack。整个过程会花费一个多小时,这取决于你运行的机器。你将看到所有服务会被分配一个容器,然后部署并最终互连。


    Conjure-Up deploying OpenStack
    部署完成后会显示一个安装完成的界面。它会导入一些初始镜像、设置 SSH 权限、配置网络最后会显示面板的 IP 地址。访问面板并生成一个容器


    面板运行在一个容器中,因此你不能直接从浏览器中访问。
    最简单的方法是设置一条 NAT 规则:
    lxc exec openstack -- iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to <IP>

    其中 <ip> 是 conjure-up 在安装结束时给你的面板 IP 地址。
    你现在可以获取 “openstack” 容器的 IP 地址(来自 lxc info openstack),并将浏览器指向:http://<container ip>/horizon 。
    第一次加载可能需要几分钟。 一旦显示了登录界面,输入默认登录名和密码(admin/openstack),你就会看到OpenStack的欢迎面板!


    oslxd-dashboard
    现在可以选择左边的 “Project” 选项卡,进入 “Instances” 页面。 要启动一个使用 nova-lxd 的新实例,点击 “Launch instance”,选择你想要的镜像,网络等,接着你的实例就产生了。
    一旦它运行后,你可以为它分配一个浮动 IP,它将允许你从你的 “openstack” 容器中访问你的实例。总结


    OpenStack 是一个非常复杂的软件,你也不会想在家里或在单个服务器上运行它。 但是,不管怎样在你的机器上包含这些服务在一个容器中都是非常有趣的。
    conjure-up 是部署这种复杂软件的一个很好的工具,背后使用 Juju 驱动部署,为每个单独的服务使用 LXD 容器,最后是实例本身。
    它也是少数几个容器嵌套多层并实际上有意义的情况之一!额外信息


    conjure-up 网站: http://conjure-up.io
    Juju 网站: http://www.ubuntu.com/cloud/juju
    LXD 的主站在: https://linuxcontainers.org/lxd
    LXD 的 GitHub 仓库: https://github.com/lxc/lxd
    LXD 的邮件列表: https://lists.linuxcontainers.org
    LXD 的 IRC 频道: #lxcontainers on irc.freenode.net
    如果你不想或者不能在你的机器上安装 LXD ,你可以在 web 上试试在线版的 LXD。
    作者简介:我是 Stéphane Graber。我是 LXC 和 LXD 项目的领导者,目前在加拿大魁北克蒙特利尔的家所在的 Canonical 有限公司担任 LXD 的技术主管。
    via: https://www.stgraber.org/2016/10/26/lxd-2-0-lxd-and-openstack-1112/
    作者:Stéphane Graber [13] 译者:geekpi 校对:wxy
    本文由 LCTT 原创编译,Linux中国 荣誉推出

      [1]: LXD 入门 - https://linux.cn/article-7618-1.html
      [2]: 安装与配置 - https://linux.cn/article-7687-1.html
      [3]: 你的第一个 LXD 容器 - https://linux.cn/article-7706-1.html
      [4]: 资源控制 - https://linux.cn/article-8072-1.html
      [5]: 镜像管理 - https://linux.cn/article-8107-1.html
      [6]: 远程主机及容器迁移 - https://linux.cn/article-8169-1.html
      [7]: LXD 中的 Docker - https://linux.cn/article-8235-1.html
      [8]: LXD 中的 LXD - https://linux.cn/article-8257-1.html
      [9]: 实时迁移 - https://linux.cn/article-8263-1.html
      [10]: LXD 和 Juju - https://linux.cn/article-8273-1.html
      [11]: LXD 和 OpenStack - https://linux.cn/article-8274-1.html
      [12]: 调试,及给 LXD 做贡献 - https://linux.cn/article-8282-1.html
      [13]: Stéphane Graber - https://www.stgraber.org/author/stgraber/


    声明:本文转载自网络。版权归原作者所有,如有侵权请联系删除。
    扫描并关注51学通信微信公众号,获取更多精彩通信课程分享。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|51学通信技术论坛

    GMT+8, 2025-1-31 17:52 , Processed in 0.063733 second(s), 33 queries .

    Powered by Discuz! X3

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表