成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

LXD 2.0 系列(六):遠(yuǎn)程主機(jī)及容器遷移

系統(tǒng) Linux 系統(tǒng)運維
LXD 使用的是“遠(yuǎn)程”的概念,而不是讓我們的用戶總是提供主機(jī)名或 IP 地址,然后在他們想要與遠(yuǎn)程主機(jī)交互時驗證證書信息。默認(rèn)情況下,唯一真正的 LXD 遠(yuǎn)程配置是 local:,這也是默認(rèn)的遠(yuǎn)程(所以你不必輸入它的名稱)。這個本地(local:)遠(yuǎn)程使用 LXD REST API 通過 unix 套接字與本地守護(hù)進(jìn)程通信。

[[182549]]

這是 LXD 2.0 系列介紹文章的第六篇。

  1. LXD 入門
  2. 安裝與配置
  3. 你的第一個 LXD 容器
  4. 資源控制
  5. 鏡像管理

遠(yuǎn)程協(xié)議

LXD 2.0 支持兩種協(xié)議:

  • LXD 1.0 API:這是在客戶端和 LXD 守護(hù)進(jìn)程之間使用的 REST API,以及在 LXD 守護(hù)進(jìn)程間復(fù)制/移動鏡像和容器時使用的 REST API。
  • Simplestreams:Simplestreams 協(xié)議是 LXD 客戶端和守護(hù)進(jìn)程使用的只讀、僅針對鏡像的協(xié)議,用于客戶端和 LXD 守護(hù)進(jìn)程獲取鏡像信息以及從一些公共鏡像服務(wù)器(如 Ubuntu 鏡像)導(dǎo)入鏡像。

以下所有內(nèi)容都將使用這兩個協(xié)議中的第一個。

安全

LXD API 的驗證是通過客戶端證書在 TLS 1.2 上使用最近的密鑰驗證的。 當(dāng)兩個 LXD 守護(hù)進(jìn)程必須直接交換信息時,源守護(hù)程序生成一個臨時令牌,并通過客戶端傳輸?shù)侥繕?biāo)守護(hù)程序。 此令牌僅可用于訪問特定流,并且會被立即撤銷,因此不能重新使用。

為了避免中間人攻擊,客戶端工具還將源服務(wù)器的證書發(fā)送到目標(biāo)服務(wù)器。這意味著對于特定的下載操作,目標(biāo)服務(wù)器會被提供源服務(wù)器的 URL、所需資源的一次性訪問令牌以及服務(wù)器應(yīng)該使用的證書。 這可以防止中間人攻擊,并且只允許臨時訪問所傳輸?shù)膶ο蟆?/p>

網(wǎng)絡(luò)需求

LXD 2.0 使用這樣一種模型,某個操作的目標(biāo)(接收端)直接連接到源以獲取數(shù)據(jù)。

這意味著你必須確保目標(biāo)服務(wù)器可以直接連接到源、可以更新任何所需的防火墻。

我們有個允許反向連接的計劃,允許通過客戶端代理本身以應(yīng)對那些嚴(yán)格的防火墻阻止兩臺主機(jī)之間通信的罕見情況。

與遠(yuǎn)程主機(jī)交互

LXD 使用的是“遠(yuǎn)程”的概念,而不是讓我們的用戶總是提供主機(jī)名或 IP 地址,然后在他們想要與遠(yuǎn)程主機(jī)交互時驗證證書信息。

默認(rèn)情況下,唯一真正的 LXD 遠(yuǎn)程配置是 local:,這也是默認(rèn)的遠(yuǎn)程(所以你不必輸入它的名稱)。這個本地(local:)遠(yuǎn)程使用 LXD REST API 通過 unix 套接字與本地守護(hù)進(jìn)程通信。

添加一臺遠(yuǎn)程主機(jī)

假設(shè)你已經(jīng)有兩臺裝有 LXD 的機(jī)器:你的本機(jī)以及遠(yuǎn)程那臺我們稱為“foo”的主機(jī)。

首先你需要確保“foo”正在監(jiān)聽網(wǎng)絡(luò),并設(shè)置了一個密碼,以便得到一個遠(yuǎn)程 shell,運行:

  1. lxc config set core.https_address [::]:8443 
  2. lxc config set core.trust_password something-secure 

在你本地 LXD 上,你需要使它對網(wǎng)絡(luò)可見,這樣我們可以從它傳輸容器和鏡像:

  1. lxc config set core.https_address [::]:8443 

現(xiàn)在已經(jīng)在兩端完成了守護(hù)進(jìn)程的配置,你可以添加“foo”到你的本地客戶端:

  1. lxc remote add foo 1.2.3.4 

(將 1.2.3.4 替換成你的 IP 或者 FQDN)

看上去像這樣:

  1. stgraber@dakara:~$ lxc remote add foo 2607:f2c0:f00f:2770:216:3eff:fee1:bd67 
  2. Certificate fingerprint: fdb06d909b77a5311d7437cabb6c203374462b907f3923cefc91dd5fce8d7b60 
  3. ok (y/n)? y 
  4. Admin password for foo:  
  5. Client certificate stored at server: foo 

你接著可以列出遠(yuǎn)端服務(wù)器,你可以在列表中看到“foo”:

  1. stgraber@dakara:~$ lxc remote list 
  2. +-----------------+-------------------------------------------------------+---------------+--------+--------+ 
  3. |      NAME       |                         URL                           |   PROTOCOL    | PUBLIC | STATIC | 
  4. +-----------------+-------------------------------------------------------+---------------+--------+--------+ 
  5. | foo             | https://[2607:f2c0:f00f:2770:216:3eff:fee1:bd67]:8443 | lxd           | NO     | NO     | 
  6. +-----------------+-------------------------------------------------------+---------------+--------+--------+ 
  7. | images          | https://images.linuxcontainers.org:8443               | lxd           | YES    | NO     | 
  8. +-----------------+-------------------------------------------------------+---------------+--------+--------+ 
  9. local (default) | unix://                                               | lxd           | NO     | YES    | 
  10. +-----------------+-------------------------------------------------------+---------------+--------+--------+ 
  11. | ubuntu          | https://cloud-images.ubuntu.com/releases              | simplestreams | YES    | YES    | 
  12. +-----------------+-------------------------------------------------------+---------------+--------+--------+ 
  13. | ubuntu-daily    | https://cloud-images.ubuntu.com/daily                 | simplestreams | YES    | YES    | 
  14. +-----------------+-------------------------------------------------------+---------------+--------+--------+ 

與它交互

好了,所以我們已經(jīng)有了一臺定義好的遠(yuǎn)程服務(wù)器,我們現(xiàn)在可以做些什么?

現(xiàn)在,就如你看到的,唯一的不同是你必須告訴 LXD 要哪臺主機(jī)運行。

比如:

  1. lxc launch ubuntu:14.04 c1 

它會在默認(rèn)主機(jī)(lxc remote get-default),也就是你的本機(jī)上運行。

  1. lxc launch ubuntu:14.04 foo:c1 

這個會在 foo 上運行。

列出遠(yuǎn)程主機(jī)正在運行的容器可以這么做:

  1. stgraber@dakara:~$ lxc list foo: 
  2. +------+---------+---------------------+-----------------------------------------------+------------+-----------+ 
  3. NAME |  STATE  |         IPV4        |                     IPV6                      |    TYPE    | SNAPSHOTS | 
  4. +------+---------+---------------------+-----------------------------------------------+------------+-----------+ 
  5. | c1   | RUNNING | 10.245.81.95 (eth0) | 2607:f2c0:f00f:2770:216:3eff:fe43:7994 (eth0) | PERSISTENT | 0         | 
  6. +------+---------+---------------------+-----------------------------------------------+------------+-----------+ 

你要記住的一件事是你需要在遠(yuǎn)程主機(jī)上同時指定鏡像和容器。因此如果你在“foo”上有一個“my-image”的鏡像,并且希望從它創(chuàng)建一個“c2”的容器,你需要運行:

  1. lxc launch foo:my-image foo:c2 

最后,就如你希望的那樣得到一個遠(yuǎn)程容器的 shell:

  1. lxc exec foo:c1 bash 

復(fù)制容器

在兩臺主機(jī)間復(fù)制容器就如它聽上去那樣簡單:

  1. lxc copy foo:c1 c2 

你會有一個新的從遠(yuǎn)程“c1”復(fù)制過來的本地“c2”容器。這需要停止“c1”容器,但是你可以在運行的時候只復(fù)制一個快照:

  1. lxc snapshot foo:c1 current 
  2. lxc copy foo:c1/current c3 

移動容器

除非你在做實時遷移(將會在之后的文章中講到),不然你需要在移動前先停止容器,接著就會如你預(yù)料的那樣。

  1. lxc stop foo:c1 
  2. lxc move foo:c1 local

這個例子等同于:

  1. lxc stop foo:c1 
  2. lxc move foo:c1 c1 

是如何工作的

正如你期望的那樣, 與遠(yuǎn)程容器的交互時 LXD 使用的 REST API 并不是通過本地 Unix 套接字,而是通過 HTTPS 傳輸。

當(dāng)兩個守護(hù)程序之間交互時會變得有些棘手,如復(fù)制和移動的情況。

在這種情況下會發(fā)生:

  1. 用戶運行l(wèi)xc move foo:c1 c1。
  2. 客戶端聯(lián)系 local: 遠(yuǎn)程以檢查是否現(xiàn)有“c1”容器。
  3. 客戶端從“foo”獲取容器信息。
  4. 客戶端從源“foo”守護(hù)程序請求遷移令牌。
  5. 客戶端將遷移令牌以及源 URL 和“foo”的證書發(fā)送到本地 LXD 守護(hù)程序以及容器配置和周圍設(shè)備。
  6. 然后本地 LXD 守護(hù)程序使用提供的令牌直接連接到“foo” a) 它連接到第一個控制 websocket b) 它協(xié)商文件系統(tǒng)傳輸協(xié)議(zfs 發(fā)送/接收,btrfs 發(fā)送/接收或者純 rsync) c) 如果在本地可用,它會解壓用于創(chuàng)建源容器的鏡像。這是為了避免不必要的數(shù)據(jù)傳輸。 d) 然后它會將容器及其任何快照作為增量傳輸。
  7. 如果成功,客戶端會命令“foo”刪除源容器。

在線嘗試

沒有兩臺機(jī)器來嘗試遠(yuǎn)端交互和復(fù)制/移動容器?

沒有問題,你可以使用我們的 demo 服務(wù)。這里甚至還包括了一步步的指導(dǎo)!

額外信息

LXD 的主站在: https://linuxcontainers.org/lxd

LXD 的 GitHub 倉庫: https://github.com/lxc/lxd

LXD 的郵件列表: https://lists.linuxcontainers.org

LXD 的 IRC 頻道: #lxcontainers on irc.freenode.net

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2017-03-07 16:41:03

LXD 2.0Linux實時遷移

2016-07-29 14:12:21

2017-03-06 14:00:22

LXD 2.0LXDLinux

2017-03-09 16:32:03

LXD 2.0Linux調(diào)試

2017-03-08 10:40:14

LXD 2.0JujuLinux

2017-03-08 18:00:10

LXD 2.0LinuxOpenStack

2017-02-27 19:27:52

LXDDockerLinux

2016-08-24 15:12:41

LXDLinux容器

2017-01-12 15:37:34

LinuxLXD 2.0鏡像管理

2016-12-29 11:01:03

LinuxLXD 2.0資源控制

2016-08-22 21:41:37

LXDLinux容器管理器

2017-12-25 13:51:32

LinuxUbuntu LinuLXD容器

2011-03-28 17:35:44

NagiosNRPE監(jiān)控

2021-07-21 09:58:50

鴻蒙HarmonyOS應(yīng)用

2013-02-28 11:18:23

PowerShell入遠(yuǎn)程操作

2014-11-03 18:22:53

2011-03-23 10:17:25

Nagios監(jiān)控

2014-11-20 10:12:59

Docker容器LXDCanonica

2009-07-21 15:34:32

ASP.NET 2.0

2012-02-15 10:30:19

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产激情一区二区三区 | 午夜噜噜噜| 麻豆精品国产免费 | 麻豆久久久久久久 | 99亚洲精品 | 在线观看涩涩视频 | 久热中文字幕 | 国产久 | 欧美激情精品久久久久久免费 | 国产高清免费在线 | 免费观看www | 午夜在线免费观看视频 | 91精品国产91久久久久久不卞 | 国产精品久久精品 | 亚洲激精日韩激精欧美精品 | 日本黄色片免费在线观看 | 国外成人在线视频网站 | 午夜影院官网 | 最新超碰 | 啪啪精品 | 91九色在线观看 | 91久久久久久 | 91国产在线播放 | 韩国精品一区二区三区 | 亚洲人成人一区二区在线观看 | 国产日韩一区二区三区 | 精品一二三 | 欧洲精品视频一区 | 国产乱码精品一区二三赶尸艳谈 | 亚洲国产成人精 | 欧美a级成人淫片免费看 | 久久网站黄 | 91精品国产综合久久婷婷香蕉 | 99精品视频网 | 精品一二三区在线观看 | 精品国产精品国产偷麻豆 | 欧美一区二区大片 | 欧美一级片在线观看 | av国产精品 | 日本在线小视频 | 特级毛片|