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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章