zoukankan      html  css  js  c++  java
  • 学习笔记2-了解unik的设计

    学习网址:

    https://github.com/cf-unik/unik/blob/master/docs/architecture.md

    一、UniK设计

    UniK守护进程由3个主要组件组成。

    • API服务器( API server
    • 编译器(Compilers
    • 提供商(Providers

    API服务器将处理来自CLI /任何HTTP客户端发出的请求,然后确定适当的provider/或编译器来服务该请求。

    API服务器收到构建(build)请求(POST /images/:image_name/create)时,它会调用指定的编译器(compiler)来构建原始映像,然后将原始映像传递给指定的提供者(provider)提供者使用Stage()方法处理原始映像,将其转换为基础架构特定的可引导镜像(例如AWS上Amazon AMI

    镜像上所有后续操作的提供程序由构建镜像的提供程序的引用确定。

    有关添加提供商的更多信息,请参阅提供商

    有关添加编译器的更多信息,请参阅编译器

    1、provider

    提供商处理UniK主要对象类型的长期管理:

    1)Images

    2)Instances

    3)Volumes

    提供者通常存储某种类型的状态,其中可能包括现有状态的JSON表示,以及磁盘映像文件。UniK的默认提供者现在将它们的状态存储在~/.unik/

    提供者执行API调用,与系统管理程序 / 云提供程序 / 基础设施进行对话,并在其中运行映像 并运行实例。

    要添加一个实现提供商的守护进程,daemon.go看 Unik API Server构造函数func NewUnikDaemon(config config.DaemonConfig) (*UnikDaemon, error)

     详细信息见:https://github.com/cf-unik/unik/blob/master/docs/providers/README.md

    2、compiler

    编译器的工作是将目录源文件编译为原始引导磁盘映像。编译器的行为意在独立于提供者。 编译器可以在RawImage返回类型中传递提供者所需的其他信息,例如与该编译器创建的unikernels所使用的存储驱动程序或网络适配器。有关RawImage的更多信息,请参阅 types 包。

    提供商必须通过GetConfig()方法指定与它们兼容的编译器。 如果您已将编译器添加到UniK,则应将编译器的名称添加到编译器要用于的每个提供者的GetConfig()方法中。

    要添加对UniK的编译器支持,必须将编译器添加到Unik API Server构造函数中的_compilers映射函数func NewUnikDaemon(config config.DaemonConfig)(* UnikDaemon,error)daemon.go中。

  • 相关阅读:
    高德车载导航自研图片格式的探索和实践
    导航定位向高精定位的演进与实践
    高德算法工程一体化实践和思考
    机器学习在高德用户反馈信息处理中的实践
    UI自动化技术在高德的实践
    高德网络定位算法的演进
    系统重构的道与术
    基于深度学习的图像分割在高德的实践
    MySQL索引那些事
    如何优雅的将Mybatis日志中的Preparing与Parameters转换为可执行SQL
  • 原文地址:https://www.cnblogs.com/summer2017/p/7596781.html
Copyright © 2011-2022 走看看