unik的命令行-解释说明

学习网址:https://github.com/cf-unik/unik/blob/master/docs/cli.md

命令行界面

UniK cli将调用UniK的REST API,使UniK变得简单。

运行守护进程

cli用于启动UniK守护进程。启动守护进程:

unik daemon

 
 

建议启动守护进程作为后台进程,&因为它被设计为长时间运行。

unik daemon 使用以下标志:

  • --debug (bool,可选)守护进程的详细日志记录
  • --f string (字符串,可选)路径到守护程序配置文件(默认为$ HOME / .unik / daemon-config.yaml)
  • --logfile string (字符串,可选)输出日志到文件(除了stdout)
  • --port int (int,可选)守护进程监听端口(默认为3000)
  • --trace (bool,可选)将堆栈跟踪添加到守护程序日志中

使用示例

unik daemon --f ./my-config.yaml --port 12345 --debug --trace --logfile logs.txt

 
 
  • 将使用my-config.yaml中的配置文件启动守护程序
  • 运行在端口12345
  • 调试模式激活
  • 跟踪模式激活
  • 将日志输出到logs.txt

定位UniK守护进程

unik target --host localhost

 
 

如果在本地机器上运行UniK。除此以外

unik target --host host_address [--port port]

 
 

将目标设置为远程UniK主机。使用该port标志是可选的,只有daemon在非默认(3000)端口上运行时才需要使用该标志 。

注意:客户端命令(非命令unik daemon)的目标可以用--host标志覆盖(使用除默认值之外的目标)。


列出可用的供应商
unik providers

 
 

返回可用于目标unik后端的提供商列表。


列出可用的编译器
unik compilers

 
 

返回可用于目标unik后端的编译器列表。


建立形象

将源文件编译成可运行的unikernel映像。

必须使用特定的编译器编译图像。编译器由3个元素组成:

  • 基础:Unikernel Base来构建映像。这些包括不同的unikernel实现,如rumprunIncludeOS等。
  • 语言:应该使用图像构建的语言/运行时。一个golang项目例如指定-language go。支持的语言取决于unikernel基础。
  • 提供者:(云/虚拟机管理程序)提供者应构建映像。支持的提供程序取决于unikernel基础。

为了查看所有支持的基本/语言/提供者组合的列表,请运行 unik compilers

必须为特定供应商编写图像,并使用--provider标志指定要查看可用提供程序的列表,请运行unik providers

必须使用--base标志指定与提供程序兼容的unikernel基础。

必须使用该--language标志指定与基础兼容的语言运行时。

要查看所有兼容的基本语言 - 提供程序组合的表,请运行 unik compilers

如果您希望将卷附加到图像的实例上,则必须事先编译图像并列出预期的挂载点。例如,对于从“/ data”文件夹读取的应用程序,unikernel应该使用该标志进行编译--mount /data

必须在编译时指定要传递给unikernel的运行时参数。您可以将参数指定为传递给该--args标志的单个字符串

图像名称必须是唯一的。如果图像存在相同名称,则可以使用--force标志强制覆盖

使用示例

unik build --name myUnikernel --path ./myApp/src --base rump --language go --provider aws --mountpoint /foo --mountpoint /bar --args 'arg1 arg2 arg3' --force

 
 
  • 将使用./myApp/src中找到的源创建一个名为myUnikernel的Go unikernel,
  • 使用针对AWS基础架构的rumprun编译,
  • 期望在运行时在/ foo上安装一个卷,
  • 期待另一个卷在运行时挂载在/ bar,
  • 在应用程序运行时将“arg1 arg2 arg3”作为参数传递,
  • 并在编译之前删除名称myUnikernel的任何先前存在的实例和映像

另一个例子(仅使用必需的参数):

unik build -name anotherUnikernel -path ./anotherApp/src --base includeos --language cpp --provider virtualbox

 
 

用法:unik build [flags]

标志:

  • --args string (字符串,可选)在运行时传递到unikernel
  • --base string (string,required)要使用的unikernel基址的名称
  • --force (bool,可选)强制使用此名称覆盖以前存在的图像
  • --language string (string,required)目标语言来构建源代码
  • --mountpoint value (字符串,重复)最多为卷指定8个安装点(默认值为[])
  • --name string (string,required)命名为unikernel。必须是独一无二的
  • --path string (字符串,必需)路径到根应用程序源文件夹
  • --provider string (string,required)要编译的目标基础架构的名称
  • --no-cleanup (bool,可选)告诉UniK如果构建失败,不要从构建过程清除任何工件。用于调试目的。

列出可用的图像
unik images

 
 

列出提供商所有可用的unikernel图像。包括运行和管理实例的重要信息,包括图像所需的安装点。


获取特定图像的JSON表示形式:
unik describe-image --image IMAGE_NAME

 
 

删除图像
unik delete-image --image IMAGE_NAME

 
 

使用--force强制删除unikernel如果这个图像的任何实例当前正在运行的相关情况。


运行一个实例
unik run --instanceName INSTANCE_NAME --imageName IMAGE_TO_USE

 
 

从unik编译的unikernel磁盘映像中部署运行的实例。该实例将部署在该图像编译的提供程序上。例如,如果图像是为virtualbox编译的,unik将尝试在配置的虚拟机环境中部署映像。

“unik run”需要一个unik管理的卷(请参见“unik卷”和“unik创建卷”),并附加到图像编译时指定的每个安装点。这意味着如果图像是使用两个装载点,/ data1和/ data2进行编译的,那么'unik run'需要在运行时将2个可用卷附加到实例上,这些卷必须用标记--vol SOME_VOLUME_NAME:/ data1 --vol ANOTHER_VOLUME_NAME:/ data2如果图像不需要安装点,则无法附加卷。

环境变量可以通过使用-env标志在运行时设置。

使用示例

unik run --instanceName newInstance --imageName myImage --vol myVol:/mount1 --vol yourVol:/mount2 --env foo=bar --env another=one --memory 1234

 
 
  • 将在供应商环境myImage编译并创建myImage的一个实例
  • 实例将被命名为newInstance
  • 实例将尝试将unik管理的卷myVol安装到/ mount1
  • 实例将尝试将unik管理的卷yourVol挂载到/ mount2
  • 实例将使用env变量foo设置为引导bar
  • 实例将使用env变量another设置为引导one
  • 实例将获得1234 MB的内存
  • 注意,运行必须采取恰好一个--vol参数每个安装在图像规范中定义点

标志:

  • --env value (字符串,重复)为实例设置任意数量的环境变量。必须格式为KEY = VALUE(默认[])
  • --imageName string (string,required)要使用的图像
  • --instanceName string (string,required)给出实例的名称。必须是独一无二的
  • --vol value (字符串,重复)每个--vol标志指定一个卷ID和相应的装载点,以在引导时附加到该实例。卷必须附加到图像预期的每个安装点的实例。运行'unik image(image_name)'来查看图像所需的安装点。以“volume_id:mount_point”格式指定(默认值为[])
  • --instanceMemory (int,可选)指定给实例的内存量(以MB为单位)。如果没有给出,则将使用提供程序默认值
  • --no-cleanup (bool,可选)告诉UniK如果启动失败,不要从启动实例进程清除任何工件。用于调试目的。
  • --debug-mode (bool,可选)以Debug模式运行实例,因此可以附加GDB。目前仅支持QEMU提供商

列出可用实例
unik instances

 
 

列出提供程序中所有可用的unikernel实例。


获取specifig实例的JSON表示形式:
unik describe-instance --instance INSTANCE_NAME

 
 

删除一个实例
unik delete-instance --instance INSTANCE_NAME

 
 

使用--force强制删除被通电的情况下


关闭实例
unik stop --instance INSTANCE_NAME

 
 

在实例创建之后关闭实例是关闭或分离卷的必要步骤。


开启实例
unik start --instance INSTANCE_NAME

 
 

检索或跟踪实例日志
unik logs --instance INSTANCE_NAME

 
 

从正在运行的unikernel实例检索日志。

无法在关闭状态的实例上使用。使用--follow标志附加到实例的stdout --delete--follow实例的HTTP连接中断(通过客户端断开连接)结合使用强制自动实例删除。该--delete标志通常用于与编排软件(如可能需要持久的http连接管理实例的集群管理器)一起使用。

使用示例

unik logs --instance myInstance

 
 
  • 从引导时起将从myInstance返回捕获的stdout
unik logs --instance myInstance --follow --delete

 
 
  • 将打开cli和unik后端之间的http连接,将stdout从实例流向客户端
  • 当客户端断开连接(即使用Ctrl + C)时,unik将自动关闭电源并终止该实例

创建卷
unik create-volume

 
 

创建一个可以连接到unik管理的实例并从其分离的数据卷。

卷可以从目录创建,这将将目录的内容复制到卷上。也可以创建空卷。

在删除实例后,卷将持续存在,允许应用程序数据在单个实例的生命周期之外持久化。

如果指定数据文件夹(使用--data),则不需要指定卷的大小。UniK会自动调整音量以适应所提供的数据。可以使用--size标志来请求更大的音量。

如果没有提供数据目录,则--size是指定要创建的空卷所需大小的必需参数。

为特定提供者创建卷,并使用--provider标志指定。卷只能附加到同一提供者类型的实例。要查看可用提供商的列表,请运行'unik providers'

卷名必须是唯一的。如果卷的名称相同,则在创建新卷之前,您将需要使用'unik delete-volume'删除卷。

--size参数使用MB

示例用法:unik create-volume --name myVolume --data ./myApp/data --provider aws

  • 将使用./myApp/src中的数据创建名为myVolume的EBS支持的AWS卷,
  • 如果卷的大小较大,则大小将为1GB(AWS上的默认最小大小)或更大

另一个例子(空卷):unik create-volume -name anotherVolume --size 500 -provider vsphere

  • 将创建一个500mb稀疏的vmdk文件,并将其上传到vsphere数据存储,其中可以将其附加到vsphere实例

标志:

  • --size int (int,special)大小以MB创建卷。如果提供了--data,则为可选项
  • --data string (字符串,特殊)路径到数据文件夹。如果提供了--size可选
  • --name string (string,required)命名为unikernel。必须是独一无二的
  • --provider string (string,required)要编译的目标基础架构的名称
  • --no-cleanup (bool,可选)告诉UniK如果构建失败,不要从构建过程清除任何工件。用于调试目的。

列出卷
unik volumes

 
 

列出供应商中所有可用的unik管理卷。

ATTACHED-INSTANCE给出卷附加到的实例的实例ID(如果有)。只有没有附件的卷可以附加到实例。


附加卷
unik attach-volume --instance INSTANCE_ID --volume VOLUME_ID --mountPoint MOUNT_POINT

 
 

将卷附加到指定装载点处的已停止实例。您可以按名称或ID指定卷。

卷必须附加到实例上的可用安装点。安装点是图像特定的,并且在图像被编译时确定。

有关此实例的映像上的安装点的列表,请运行unik images或 unik describe image

如果指定的安装点被另一个卷占用,则该命令将导致错误

标志:

  • --force (bool,可选)在运行的情况下强制删除卷
  • --instance string (string,required)要附加的实例的名称或ID。unik接受名称或ID的前缀
  • --mountPoint string (字符串,必需)卷的安装路径。这应该反映图像上指定的映射。运行'unik描述图像'以查看图像的预期安装点
  • --volume string (string,required)要附加的卷的名称或ID。unik接受名称或ID的前缀

分离卷
unik detach-volume --volume VOLUME_ID

 
 

将卷分解到指定装入点处的已停止实例。您可以按名称或ID指定卷。

拆卸卷后,卷可以安装到另一个实例。

如果实例未停止,则分离将导致错误。

别名:detach-volume,detach

标志:

  • --volume string (string,required)要分离的卷的名称或ID。unik接受名称或ID的前缀

删除卷
unik delete-volume --volume VOLUME_NAME [--force]

 
 
  • --force 如果当前附加的话,则在删除之前分离卷。

登录
unik login

 
 
  • 登录到Unik Repository来拉和推图像
  • 这实际上不会进行身份验证(因为Unik Hubs是无状态的),而是将客户端配置设置为 ~/.unik/hub-config.yaml

unik push --image myImage

 
 
  • 将编译的映像从本地提供程序(Xen,Virtualbox或QEMU)推送到支持S3的Hub Repository

unik pull --image myImage --provider virtualbox|qemu|xen

 
 
  • 将已编译的映像从S3支持的Hub Repository拉到本地提供程序(Xen,Virtualbox或QEMU)到支持S3的Hub Repository
  • 提供者指定图像指定的体系结构。

搜索
unik search [image_name]

 
 
  • 搜索可用的图像。可选过滤器image_name
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值