黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

Docker教程
Docker安裝
Docker使用
Docker實(shí)例

Docker UCP

UCP 是企業(yè)級的容器即服務(wù)平臺的圖形化操作界面。UCP 使用 Docker 引擎,并添加了各種企業(yè)喜歡以及需要的功能。例如 RBAC、可配置、認(rèn)證、高可用控制平面以及簡單界面。在 UCP 內(nèi)部,是一個容器化的微服務(wù)應(yīng)用,以多個容器的形式運(yùn)行。

架構(gòu)層面上講,UCP 是基于 Swarm 模式下的 Docker EE 構(gòu)建的。如下圖所示,UCP 控制平面運(yùn)行在 Swarm 管理節(jié)點(diǎn)上,應(yīng)用則部署在 Swarm 工作節(jié)點(diǎn)上。

UCP 管理節(jié)點(diǎn)必須是 Linux。工作節(jié)點(diǎn)既可以 Windows,也可以是 Linux。

規(guī)劃 UCP 安裝

在規(guī)劃 UCP 安裝的時候,合理設(shè)置集群大小和規(guī)格十分重要。下面介紹該過程中需要考慮的一些方面。

集群中全部節(jié)點(diǎn)的時鐘需要同步(例如 NTP)。如果沒有同步,可能導(dǎo)致一些很難定位的問題。全部節(jié)點(diǎn)都要有自己的靜態(tài) IP 地址和固定的 DNS 名稱。

默認(rèn)情況下,UCP 管理節(jié)點(diǎn)不運(yùn)行用戶工作負(fù)載。推薦使用這種最佳實(shí)踐,并建議用戶在生產(chǎn)環(huán)境中強(qiáng)制使用。該方式使得管理節(jié)點(diǎn)只需關(guān)注控制平面職責(zé)。同時也能簡化問題定位。

用戶需要保證管理節(jié)點(diǎn)數(shù)量為奇數(shù)。這樣就能避免出現(xiàn)腦裂等類似場景時,會導(dǎo)致管理節(jié)點(diǎn)不可用,或者與集群割裂的現(xiàn)象。理想數(shù)量為 3、5 或者 7,3 或者 5 是較常用的。多于 7 的話,可能導(dǎo)致后臺 Raft 算法或者集群一致性的問題。如果不能提供 3 個管理節(jié)點(diǎn),1 個要好于 2 個!

如果配置了后臺計劃(用戶應(yīng)當(dāng)配置)并進(jìn)行日常備份,可能需要部署 5 個管理節(jié)點(diǎn)。這是因?yàn)?Swarm 和 UCP 的備份操作需要停止 Docker 和 UCP 服務(wù)。5 個管理節(jié)點(diǎn)可以保證在執(zhí)行類似操作時集群的彈性。

管理節(jié)點(diǎn)應(yīng)當(dāng)根據(jù)數(shù)據(jù)中心可用域進(jìn)行部署。用戶最不想見到的場景,就是全部 UCP 管理節(jié)點(diǎn)所在的域都不可用。但是,管理節(jié)點(diǎn)之間的通信必須經(jīng)由高速可靠的網(wǎng)絡(luò)完成。

因此如果數(shù)據(jù)中心可用域之間網(wǎng)絡(luò)狀況不佳,最好還是將所有管理節(jié)點(diǎn)部署在相同域之中。有件事已經(jīng)約定成俗,即在公有云上部署時,需要將管理節(jié)點(diǎn)部署在同區(qū)域內(nèi)的可用域中。跨區(qū)域通常會受到低可靠性和高延遲網(wǎng)絡(luò)的影響。

工作節(jié)點(diǎn)的數(shù)量可以根據(jù)需求設(shè)置,因?yàn)樗鼈儾⒉粫⑴c到集群 Raft 操作當(dāng)中,所以就不會影響控制平面操作。

規(guī)劃工作節(jié)點(diǎn)的規(guī)格和數(shù)量,需要理解計劃部署在集群上的應(yīng)用需求。例如,理解之后能幫助用戶確定需要多少 Windows 節(jié)點(diǎn)和 Linux 節(jié)點(diǎn)。同時還需要知道應(yīng)用是否有特殊需求,需要工作節(jié)點(diǎn)的定制化來支持,例如 PCI 類工作負(fù)載。

此外,雖然 Docker 引擎是輕量級的,但其上運(yùn)行的容器化應(yīng)用不一定也是。出于這樣的考慮,根據(jù)應(yīng)用的 CPU、RAM、網(wǎng)絡(luò)以及磁盤 I/O 需求規(guī)劃節(jié)點(diǎn)數(shù)目就很重要了。

確定合理的節(jié)點(diǎn)配置并不是什么好玩的事兒,這完全取決于工作負(fù)載。但是,Docker 網(wǎng)站上對 Linux Docker UCP 2.2.4 的最低配置有如下建議。

? UCP 管理節(jié)點(diǎn)運(yùn)行 DTR:8GB RAM,3GB 磁盤空間。

? UCP 工作節(jié)點(diǎn):4GB RAM,3GB 空閑磁盤空間。

推薦配置如下。

? 運(yùn)行 DTR 的 UCP 管理節(jié)點(diǎn):8GB RAM,4 核 CPU,100GB 磁盤。

? UCP 工作節(jié)點(diǎn):4GB RAM,25-100GB 空閑磁盤空間。

該建議僅供參考,用戶在確定配置時需要自己多加練習(xí)。

有一點(diǎn)是確認(rèn)的:Window 鏡像會比 Linux 鏡像稍大一些。所以規(guī)劃時務(wù)必考慮該因素。

關(guān)于需求規(guī)劃最后多說一點(diǎn)。Docker Swarm 和 Docker UCP 簡化了管理節(jié)點(diǎn)和工作節(jié)點(diǎn)的添加 / 刪除工作。新加入的管理節(jié)點(diǎn)被自動加入到 HA 控制平面,新加入的工作節(jié)點(diǎn)馬上就能參與到工作負(fù)載調(diào)度當(dāng)中。

類似的,刪除管理節(jié)點(diǎn)和工作節(jié)點(diǎn)也非常簡單。只要擁有多個管理節(jié)點(diǎn),就可以在不影響集群操作的情況下移除其中一個。移除工作節(jié)點(diǎn)時,需要清理該節(jié)點(diǎn)上的工作負(fù)載,然后從運(yùn)行中的集群移除。上述特點(diǎn)使得 UCP 對管理節(jié)點(diǎn)和工作節(jié)點(diǎn)的變更做到不感知。

安裝 Docker UCP

下面主要介紹在新集群的第一個管理節(jié)點(diǎn)上安裝 Docker UCP 的完整過程。

⒈ 在某個 Linux Docker EE 節(jié)點(diǎn)上運(yùn)行下面的命令,該節(jié)點(diǎn)應(yīng)是計劃中作為 UCP 集群的第一個管理節(jié)點(diǎn)。

關(guān)于命令需要補(bǔ)充說明,示例在安裝 UCP 時,使用了 docker/ucp:2.2.5 鏡像,用戶需要替換為適合自己的版本。--host-address 設(shè)置了 Web 界面訪問地址。如果用戶在 AWS 上完成安裝,并且計劃通過互聯(lián)網(wǎng)訪問公司的網(wǎng)絡(luò),這里就需要設(shè)置 AWS 的公共 IP 地址。

$ docker container run --rm -it --name ucp \
-v /var/run/docker.sock:/var/run/docker.sock \
docker/ucp:2.2.5 install \
--host-address <node-ip-address> \
--interactive

⒉ 配置管理員賬號。安裝過程會提示用戶輸入用戶名和密碼,作為 UCP 管理員賬號。這是一個本地賬號,建議遵守公司規(guī)范來創(chuàng)建用戶名和密碼。創(chuàng)建后千萬不要忘記。

⒊ 主體別名(Subject Alternative Name,SAN)。安裝程序會提示輸入能訪問 UCP 的 IP 地址和名稱列表。列表內(nèi)容可以是私有 IP 地址以及 DNS 名稱,并且會加入到賬號當(dāng)中。

安裝過程還需注意以下的一些內(nèi)容。

UCP 基于 Docker Swarm,這意味著 UCP 管理節(jié)點(diǎn)需要運(yùn)行在 Swarm 管理節(jié)點(diǎn)上。如果在某個節(jié)點(diǎn)上以單引擎模式(Single-Engine Mode)安裝 UCP,則該節(jié)點(diǎn)會默認(rèn)切換為 Swarm 模式。

安裝程序拉取 UCP 服務(wù)所需的全部鏡像,并完成相應(yīng)容器的啟動。下面列舉了部分由安裝程序拉取的鏡像。

INFO[0008] Pulling required images... (this may take a while)
INFO[0008] Pulling docker/ucp-auth-store:2.2.5
INFO[0013] Pulling docker/ucp-hrm:2.2.5
INFO[0015] Pulling docker/ucp-metrics:2.2.5
INFO[0020] Pulling docker/ucp-swarm:2.2.5
INFO[0023] Pulling docker/ucp-auth:2.2.5
INFO[0026] Pulling docker/ucp-etcd:2.2.5
INFO[0028] Pulling docker/ucp-agent:2.2.5
INFO[0030] Pulling docker/ucp-cfssl:2.2.5
INFO[0032] Pulling docker/ucp-dsinfo:2.2.5
INFO[0080] Pulling docker/ucp-controller:2.2.5
INFO[0084] Pulling docker/ucp-proxy:2.2.5

部分比較值得關(guān)注的鏡像包括以下幾點(diǎn)。

? ucp-agent 這是 UCP 核心代理。該代理會部署到集群的全部節(jié)點(diǎn)上,用于確保 UCP 所需容器全部啟動并運(yùn)行。

? ucp-etcd 集群持久化鍵值對存儲。

? ucp-auth 共享鑒權(quán)服務(wù)(在 DTR 的單點(diǎn)登錄中也用到了)。

? ucp-proxy 控制對本地 Docker Socket 端口的訪問,這樣未認(rèn)證的客戶端就不能擅自篡改集群了。

? ucp-swarm 提供對底層 Swarm 的適配。

最終,安裝程序創(chuàng)建了一對根 CA:一個用于集群內(nèi)部通信,另一個用于外部訪問。CA 使用自簽名證書,這對于實(shí)驗(yàn)和測試環(huán)境來說很好,但是不適用于生產(chǎn)環(huán)境。

為了完成可信 CA 證書的 UCP 安裝,需要使用下面 3 個文件完成證書綁定。

? ca.pem:可信 CA 證書(通常是公司內(nèi)部 CA)。

? cert.pem:UCP 的公開證書。該證書包含了全部被授權(quán)訪問集群的 IP 地址和 DNS 名稱,包括位于集群之前的負(fù)載均衡器。

? key.pem:UCP 的私鑰。

如果已經(jīng)有了上述文件,則需要將其掛載到 Dockerucp-controller-server-certs 卷下,并且使用 --external-ca 數(shù)指定卷。用戶也可以在安裝完成后,通過 Web 界面中的管理員設(shè)置(Admin Setting)頁面來修改證書。

UCP 安裝程序輸出中的最后一段內(nèi)容,就是訪問所用的 URL。

<Snip>
INFO[0049] Login to UCP at https://<IP or DNS>:443

通過 Web 瀏覽器訪問該地址并且登錄。如果使用自簽名證書,則需要確認(rèn)瀏覽器的告警信息。同時還需要指定許可證文件,該文件可以從 Docker 商店的 My Content 中下載。

登錄后即可訪問 UCP 管理面板,如下圖所示。

到目前為止,一個單點(diǎn)登錄 UCP 集群已經(jīng)就緒。

可以通過管理面板底部的 Add Nodes 鏈接為集群添加更多的管理節(jié)點(diǎn)和工作節(jié)點(diǎn)。

下圖展示了添加節(jié)點(diǎn)的界面。用戶可以選擇添加管理節(jié)點(diǎn)或者工作節(jié)點(diǎn),然后界面中就會給出對應(yīng)的命令,在待添加節(jié)點(diǎn)上運(yùn)行即可。示例中選擇添加 Linux 工作節(jié)點(diǎn)。注意,這是一個 docker swarm命令。

添加的節(jié)點(diǎn)會加入 Swarm 集群,并且配置所需的 UCP 服務(wù)。如果添加的是管理節(jié)點(diǎn),推薦在連續(xù)添加之間稍作等待。這樣可以給 Docker 留出下載并運(yùn)行所需 UCP 容器的機(jī)會,同時也允許集群注冊新的管理節(jié)點(diǎn)并達(dá)到法定人數(shù)。

新加入的管理節(jié)點(diǎn)會自動配置到高可用(HA)的一致性 Raft 組當(dāng)中,并且被授權(quán)可以訪問集群存儲。此外,雖然外部負(fù)載均衡器通常不被認(rèn)作 UCP HA 的核心部分,但其本身對外提供了穩(wěn)定的 DNS 名稱,屏蔽了一些后端場景,如某個節(jié)點(diǎn)掛掉。

用戶需要為 443 端口的 TCP 透傳配置外部的負(fù)載均衡器,通過自定義的 HTTPS 心跳檢查 https:///_ping 確認(rèn) UCP 管理節(jié)點(diǎn)的狀態(tài)。

現(xiàn)在一個工作狀態(tài)的 UCP 已經(jīng)搭建完成,可以通過 Admin Settings 頁面查看相關(guān)選項(xiàng),如下圖所示。

UCP 的訪問控制

所有對 UCP 的訪問,都經(jīng)由身份管理子系統(tǒng)。這意味著用戶在集群上執(zhí)行任何操作前,首先需要通過用戶名和密碼進(jìn)行認(rèn)證。這些操作包括集群的管理,以及服務(wù)的部署和管理。

用戶使用 UI 界面的時候已經(jīng)體驗(yàn)過了,必須使用用戶名和密碼才能登錄。在 CLI 中也是一樣的,用戶不能在未登錄的情況下通過 UCP 執(zhí)行命令!這是因?yàn)?UCP 集群中本地 Docker Socket 受到 ucp-proxy 服務(wù)的保護(hù),不會接受未認(rèn)證命令。

客戶端綁定

每個運(yùn)行 Docker CLI 的節(jié)點(diǎn),都能部署并管理 UCP 集群的工作負(fù)載,只要該節(jié)點(diǎn)存在一個有效 UCP 用戶認(rèn)證。

本節(jié)中會創(chuàng)建一個新 UCP 用戶,新建并下載該用戶的綁定證書,接著創(chuàng)建一個 Docker 客戶端并使用該證書。在完成上述步驟后,會解釋其工作原理。

⒈ 如果還沒就緒,則以管理員身份登錄 UCP。

⒉ 單擊 User Management > Users,創(chuàng)建一個新用戶。因?yàn)檫€未討論角色和權(quán)限相關(guān)的內(nèi)容,所以將用戶設(shè)置為 Docker EE 管理員。

⒊ 在新用戶選中狀態(tài)下,單擊 Configure 下拉框,然后選擇 Client Bundle,如下圖所示。

⒋ 單擊 Client Bundle +鏈接,生成并下載該用戶的客戶端 Bundle。

此時需要注意,客戶端 Bundle 是與用戶相關(guān)的。因此,該 Bundle 能夠使得配置好的 Docker 客戶端在 UCP 集群上以該 Bundle 所屬用戶的身份執(zhí)行命令。

⒌ 復(fù)制下載內(nèi)容到 Docker 客戶端,該客戶端是用戶配置用于管理 UCP 的。

⒍ 登錄客戶端節(jié)點(diǎn),執(zhí)行下面的全部命令。

⒎ 解壓縮客戶端綁定內(nèi)容。

$ unzip ucp-bundle-nigelpoulton.zip
Archive: ucp-bundle-nigelpoulton.zip
extracting: ca.pem
extracting: cert.pem
extracting: key.pem
extracting: cert.pub
extracting: env.sh
extracting: env.ps1
extracting: env.cmd

示例使用 Linux 的 unzip 包將客戶端綁定解壓縮到當(dāng)前目錄。需要將命令中客戶端綁定的名稱替換為自己環(huán)境中的名稱。

⒏ 使用恰當(dāng)?shù)哪_本配置 Docker 客戶端。env.sh 可以在 Linux 和 Mac 上使用,env.ps 和 env.cmd 可以在 Windows 上使用。

運(yùn)行腳本需要管理員 /root 權(quán)限。示例在 Windows 和 Linux 上均可以執(zhí)行。

$ eval "$(<env.sh)"

此時,客戶端節(jié)點(diǎn)配置已經(jīng)完成。

⒐ 測試權(quán)限。

$ docker version

<Snip>

Server:
Version: ucp/2.2.5
API version: 1.30 (minimum version 1.20)
Go version: go1.8.3
Git commit: 42d28d140
Built: Wed Jan 17 04:44:14 UTC 2018
OS/Arch: linux/amd64
Experimental: false

注意到輸出中的 Server 部分顯示其版本為 ucp/2.2.5,這就說明 Docker 客戶端已經(jīng)成功連接到 UCP 節(jié)點(diǎn)的 daemon 了。

實(shí)際上,腳本共配置了 3 個環(huán)境變量:DOCKER_HOST、DOCKER_TLS_VERIFY 和 DOCKER_CERT_PATH。

DOCKER_HOST 將客戶端指向了遠(yuǎn)端位于 UCP 控制層中的 Docker daemon。比如 DOCKER_HOST=tcp://34.242.196.63:443,可以看到,是通過 443 端口訪問的。

DOCKER_TLS_VERIFY 設(shè)置為 1,告訴客戶端使用 TLS 認(rèn)證的客戶端模式。DOCKER_CERT_PATH 告訴 Docker 客戶端綁定證書的具體位置。

最終結(jié)果就是所有 Docker 命令都會在客戶端使用用戶證書簽名,然后經(jīng)由網(wǎng)絡(luò)發(fā)送到遠(yuǎn)端的 UCP 管理節(jié)點(diǎn),如下圖所示。

UCP 備份

首先并且最重要的是,高可用(HA)并不等價于備份!

思考下面的例子。有一個包含 5 個管理節(jié)點(diǎn)的 UCP 集群。所有管理節(jié)點(diǎn)都處于健康狀態(tài),并且控制平面開啟了復(fù)制功能。某個心懷怨恨的員工對集群進(jìn)行破壞(或者刪除了全部用戶賬戶)。破壞操作會復(fù)制到全部 5 個管理節(jié)點(diǎn),導(dǎo)致集群被破壞。這種場景下 HA 沒有絲毫幫助。此時需要的,是備份!

一個 UCP 集群主要由 3 個部分構(gòu)成,也是需要分別備份的內(nèi)容:Swarm、UCP 和 Docker 可信鏡像倉庫服務(wù)(DTR)。

接下來會展示如何完成 Swarm 和 UCP 的備份,有關(guān) DTR 備份的內(nèi)容本章會在稍后進(jìn)行介紹。

雖然 UCP 位于 Swarm 上層,但是它們是互相獨(dú)立的。Swarm 維護(hù)了全部節(jié)點(diǎn)關(guān)系、網(wǎng)絡(luò)以及服務(wù)定義。UCP 在其上層構(gòu)建,維護(hù)自己的數(shù)據(jù)庫和卷存儲來記錄用戶、組、授權(quán)、Bundle、許可證文件、認(rèn)證等信息。

一起來看一下如何進(jìn)行 Swarm 備份。

Swarm 配置和狀態(tài)保存在 /var/lib/docker/swarm 中,其中包含了 Raft 日志密鑰,并且會復(fù)制到每個管理節(jié)點(diǎn)。Swarm 備份就是復(fù)制該目錄下的所有文件。

因?yàn)樵撔畔?fù)制到每個管理節(jié)點(diǎn),所以用戶可以在任何管理節(jié)點(diǎn)上進(jìn)行備份。

備份時需要在待執(zhí)行備份操作的節(jié)點(diǎn)上停止 Docker。這意味著在主管理節(jié)點(diǎn)上執(zhí)行備份操作不是一個好的選擇,因?yàn)檫@樣會導(dǎo)致重新選主。

執(zhí)行備份時最好選擇在業(yè)務(wù)的低峰期進(jìn)行,雖然對于擁有多管理節(jié)點(diǎn)的 Swarm 來說,停止某個管理節(jié)點(diǎn)并不會出現(xiàn)問題,但這種操作還是會增加集群在另一管理節(jié)點(diǎn)宕機(jī)時出現(xiàn)高可用有效節(jié)點(diǎn)數(shù)不足的情況。

在執(zhí)行備份前,創(chuàng)建一些 Swarm 對象可以驗(yàn)證備份和回滾操作是否確實(shí)生效了。示例中待備份的 Swarm,擁有一個名為 vantage-net 的覆蓋網(wǎng)絡(luò),以及名為 vantage-svc 的 Swarm 服務(wù)。

⒈ 停止待備份 Swarm 管理節(jié)點(diǎn)上的 Docker。這樣會停止該節(jié)點(diǎn)上的全部 UCP 容器。如果 UCP 配置了 HA,則其他管理節(jié)點(diǎn)會保證控制平面處于可用狀態(tài)。

$ service docker stop

⒉ 備份 Swarm 配置。示例使用 Linux tar 工具來執(zhí)行文件復(fù)制。可隨意選擇其他工具。

$ tar -czvf swarm.bkp /var/lib/docker/swarm/
tar: Removing leading `/' from member names
/var/lib/docker/swarm/
/var/lib/docker/swarm/docker-state.json
/var/lib/docker/swarm/state.json
<Snip>

⒊ 確認(rèn)備份文件存在。

$ ls -l
-rw-r--r-- 1 root root 450727 Jan 29 14:06 swarm.bkp

備份文件的保存周期需要視公司具體的備份策略而定。

⒋ 重啟 Docker。

$ service docker restart

現(xiàn)在 Swarm 備份完成,是時候備份 UCP 了。在開始 UCP 備份前,需要注意如下幾點(diǎn)。

因?yàn)?UCP 備份任務(wù)以容器方式運(yùn)行,所以如果想進(jìn)行備份,需要 Docker 保持運(yùn)行狀態(tài)。

可以在集群中的任意一臺 UCP 管理節(jié)點(diǎn)上運(yùn)行備份,并且只需要在一個節(jié)點(diǎn)上運(yùn)行即可(UCP 復(fù)制功能會將配置信息復(fù)制到全部管理節(jié)點(diǎn),所以沒有必要備份多節(jié)點(diǎn))。

對 UCP 進(jìn)行備份會停止所在管理節(jié)點(diǎn)上的全部 UCP 容器。在該前提下,備份操作需要運(yùn)行在一個高可用 UCP 集群上,并且最好是在業(yè)務(wù)低峰期運(yùn)行。

自始至終,執(zhí)行備份的管理節(jié)點(diǎn)上的用戶工作負(fù)載并不會停止。但是,并不建議在 UCP 管理節(jié)點(diǎn)上執(zhí)行用戶工作負(fù)載。

下面開始備份 UCP。在某個 UCP 管理節(jié)點(diǎn)上執(zhí)行下面的命令。該節(jié)點(diǎn)的 Docker 需要保持運(yùn)行狀態(tài)。

$ docker container run --log-driver none --rm -i --name ucp \
-v /var/run/docker.sock:/var/run/docker.sock \
docker/ucp:2.2.5 backup --interactive \
--passphrase "Password123" > ucp.bkp

該命令很長,一起來看一下每個步驟的內(nèi)容。

第一行是標(biāo)準(zhǔn)的 docker container run 命令,讓 Docker 運(yùn)行某個容器,運(yùn)行時不開啟日志,在運(yùn)行結(jié)束后進(jìn)行刪除,同時調(diào)用 ucp;第二行將 Docker socket 掛載到容器中,這樣容器可以通過訪問 Docker API 來停止運(yùn)行;第三行是告訴 Docker 在容器內(nèi)基于 docker/ ucp:2.2.5 鏡像運(yùn)行 backup --interactive 命令;最后一行創(chuàng)建了名為 ucp.bkp 的加密文件,并且用密碼進(jìn)行安全保護(hù)。

下面是值得注意的幾點(diǎn)。

指定具體的 UCP 鏡像版本(標(biāo)簽)是一個好辦法,示例中指定為 docker/ucp:2.2.5。這樣做是因?yàn)檫M(jìn)行備份和恢復(fù)操作的時候,建議使用相同版本的鏡像。如果沒有顯示指定鏡像版本,Docker 會默認(rèn)使用標(biāo)簽為 latest 的鏡像,這可能導(dǎo)致執(zhí)行備份和恢復(fù)操作時鏡像版本存在差異。

每次備份都應(yīng)當(dāng)使用 --passphrase 來保護(hù)備份內(nèi)容,此外可以改進(jìn)示例中的密碼,使其對用戶更加友好。

建議根據(jù)用戶的備份要求對備份文件進(jìn)行目錄化管理,并保存一個離線備份。此外建議配置備份計劃和對應(yīng)的檢查任務(wù)。

現(xiàn)在已經(jīng)完成了 Swarm 和 UCP 的備份,可以在災(zāi)難性事件發(fā)生后安全地進(jìn)行恢復(fù)了。

恢復(fù) UCP

在介紹恢復(fù) UCP 之前,有句話不得不提前說明:從備份進(jìn)行恢復(fù)是最后的手段,只能在整個集群都宕機(jī)或者全部管理節(jié)點(diǎn)都丟失的情況下使用!

如果 HA 集群下僅丟失某個管理節(jié)點(diǎn),并不需要從備份進(jìn)行恢復(fù)。該情況下,很容易就能創(chuàng)建新管理節(jié)點(diǎn)并加入集群。

下面會先介紹如何從備份恢復(fù) Swarm,然后是 UCP。

在欲恢復(fù)的 Swarm/UCP 管理節(jié)點(diǎn)上執(zhí)行下面的任務(wù)。

⒈ 停止 Docker。

$ service docker stop

⒉ 刪除全部已存在的 Swarm 配置。

$ rm -r /var/lib/docker/swarm

⒊ 從 Swarm 備份中恢復(fù)配置信息。

示例中使用了名為 swarm.bkp 的壓縮文件,格式為 tar。該命令需要指定恢復(fù)到根目錄下,因?yàn)閭浞菸募鈮簽樵嘉募牟僮髦袝窂叫畔ⅰ?/p>

$ tar -zxvf swarm.bkp -C /

⒋ 初始化新的 Swarm 集群。

切記,當(dāng)前執(zhí)行的操作并不是恢復(fù)某個節(jié)點(diǎn)然后重新加入集群。該操作是恢復(fù)一個不可用的 Swarm 集群,其中不包含任何存活的管理節(jié)點(diǎn)。--force-new-cluster 參數(shù)告訴 Docker 創(chuàng)建新集群,使用的配置保存在當(dāng)前節(jié)點(diǎn) /var/lib/docker/swarm 目錄下。

$ docker swarm init --force-new-cluster
Swarm initialized: current node (jhsg...3l9h) is now a manager.

⒌ 檢查網(wǎng)絡(luò)和服務(wù)是恢復(fù)操作中的一部分。

$ docker network ls
NETWORK ID NAME DRIVER SCOPE
snkqjy0chtd5 vantage-net overlay swarm

$ docker service ls
ID NAME MODE REPLICAS IMAGE
w9dimu8jfrze vantage-svc replicated 5/5 alpine:latest

至此,Swarm 集群完成恢復(fù)。

⒍ 為 Swarm 集群增加新的管理節(jié)點(diǎn)和工作節(jié)點(diǎn),并刷新備份。

在恢復(fù) Swarm 之后,可以恢復(fù) UCP。在示例中,UCP 備份到了當(dāng)前目錄下名為 ucp.bkp 的文件中。雖然文件名是備份文件,但其本質(zhì)是一個 Linux 打包工具。

在欲恢復(fù) UCP 的節(jié)點(diǎn)上執(zhí)行下面的命令。該節(jié)點(diǎn)可以是剛剛執(zhí)行 Swarm 恢復(fù)操作的節(jié)點(diǎn)。

⒈ 刪除已經(jīng)存在并且可能崩潰的 UCP 安裝。

$ docker container run --rm -it --name ucp \
-v /var/run/docker.sock:/var/run/docker.sock \
docker/ucp:2.2.5 uninstall-ucp --interactive

INFO[0000] Your engine version 17.06.2-ee-6, build e75fdb8 is compatible
INFO[0000] We're about to uninstall from this swarm cluster.
Do you want to proceed with the uninstall? (y/n): y
INFO[0000] Uninstalling UCP on each node...
INFO[0009] UCP has been removed from this cluster successfully.
INFO[0011] Removing UCP Services

⒉ 從備份中恢復(fù) UCP。

$ docker container run --rm -i --name ucp \
-v /var/run/docker.sock:/var/run/docker.sock \
docker/ucp:2.2.5 restore --passphrase "Password123" < ucp.bkp

INFO[0000] Your engine version 17.06.2-ee-6, build e75fdb8 is compatible
<Snip>
time="2018-01-30T10:16:29Z" level=info msg="Parsing backup file"
time="2018-01-30T10:16:38Z" level=info msg="Deploying UCP Agent Service"
time="2018-01-30T10:17:18Z" level=info msg="Cluster successfully restored.

⒊ 登錄 UCP Web 界面,確認(rèn)之前創(chuàng)建的用戶還存在(或者是任何之前環(huán)境中存在的 UCP 對象)。

全部教程
主站蜘蛛池模板: 一级片在线视频 | 中文字幕二区三区 | 亚洲熟乱 | 国产成人免费 | 欧美综合色 | 深夜www | 9966国产精品视频 | 永久免费的啪啪免费的网址 | 波多野结衣中出在线 | 亚洲欧美日韩综合网导航 | 草草影院欧美三级日本 | 星空影院免费观看韩国三集 | 久久久免费的精品 | 1000部羞羞视频在线看视频 | a级精品九九九大片免费看 a级精品国产片在线观看 | 黄色一级片在线播放 | 午夜涩涩 | 成人18免费网 | 天天干天天草 | 久久精品网站免费观看 | 免费乱理伦片在线观看八戒 | 黄色网址免费大全 | 日本成人社区 | 婷婷综合久久狠狠色99h | 欧美在线香蕉在线现视频 | 夜夜揉揉日日人人视频 | 99视频全部看免费观 | 国产精品久久久 | 18gay丫男同志69 | 18视频在线观看网站 | 99在线免费观看 | 欧美人一级淫片a免费播放 欧美人妖猛交 | 精品亚洲欧美高清不卡高清 | 国产三级视频网站 | 国产91精品一区二区麻豆网站 | 美女视频黄频免费大全软件 | 五月天婷婷在线观看高清 | 美女视频很黄很暴黄是免费的 | 色噜噜色噜噜天天拍一拍 | 亚洲欧洲日产国码二区首页 | 亚洲高清毛片 |