openstack-kolla项目

本文详细介绍了openstack-kolla项目,包括其目标、目录结构和kolla-build的代码分析。kolla主要用于构建基于Dockerfile的容器镜像,而kolla-ansible则是用于快速部署和管理容器的工具。文章还探讨了kolla-build的构建流程,以及kolla-ansible的目录结构和Ansible Playbooks的工作原理。
摘要由CSDN通过智能技术生成

kolla源码阅读

项目目标

To provide production-ready containers and deployment tools for operating
OpenStack clouds.

kolla项目的目标:提供生产环境可用的容器镜像
kolla项目主要是对镜像容器进行构建,根据每个项目-服务中的dockerfile来创建各个服务的容器,然后构建私有仓库,也就是实现build的功能

目录结构

  • 首先来看一下目录结构
    目录结构
    其中比较重要的几个文件夹简单介绍一下:
    • doc/ - 一些说明性文档。比如说image-building.rst,介绍了kolla-build这个命令行怎么构建docker镜像,介绍这个命令行的传入参数以及示例如何使用这个命令。
      再细说一下kolla-build,它会根据DockerFile来制作镜像,然后放入本地的镜像仓库(Local Docker Registry)。在Deploy阶段,会根据用户的配置(比如multinode, allinone),自动生成配置文件,并且把配置文件和镜像仓库中的镜像一起部署到对应的节点上。
    • docker/ - 这个目录下主要是DockerFile,安装项目来划分,然后每个项目下又划分为一个或多个服务,每个服务对应一个docker image。
    • kolla/ - python实现的kolla命令,这里主要是build命令。后面详细说。原本的genpwd已经移植到了kolla-ansible中。
    • tools/ - 一些脚本工具的集合。包括cleanup-images, validate-docker-execute ,validate-maintainer等等。
    • setup.cfg - 文件的内容由很多个section组成,比如global、metadata、file等,提供了这个软件包的名称、作者等有用的信息,能够更好地理解代码的section唯有的entry_points。简单的理解,这些entry_points是项目所提供的服务的入口点。
    • setup.py - 仅仅调用setup函数,但是它有大量的参数需要配置,包括项目名称、作者、版本等,而setup.cfg就是存了这些参数。setup函数利用pbr工具去读取和过来setup.cfg中的数据,将解析后的结果作为自己的参数。

kolla-build 代码分析

setup.cfg
我们从这个entry_points入手。
entry_points可以简单理解为它通过setuptools注册的外部可以直接调用的接口。
循着entry_points,我们可以找到kolla-build的入口函数。
这里写图片描述
step1:模块入口
step2:调用kolla.cmd.build的main()函数
step3:调用kolla.image.build的run_build()函数,建立working_dir, 创建dockerfile,构建容器镜像,并且输出安装过程的日志,最终删除临时文件,返回结果(build, failed, not_matched,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值