国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Part 3: Services

leo108 / 3480人閱讀

摘要:介紹在第部分中,我們將擴(kuò)展應(yīng)用程序并啟用負(fù)載平衡。運(yùn)行您的新負(fù)載平衡應(yīng)用程序在我們使用命令之前,我們先運(yùn)行注意我們將在第部分中了解該命令的含義。無(wú)論如何,您將看到容器的更改,顯示負(fù)載平衡在每個(gè)請(qǐng)求中,選擇一個(gè)循環(huán)模式的個(gè)任務(wù)中的一個(gè)來(lái)響應(yīng)。

介紹

在第3部分中,我們將擴(kuò)展應(yīng)用程序并啟用負(fù)載平衡。為此,我們必須在分布式應(yīng)用程序的層次結(jié)構(gòu)中提升一個(gè)級(jí)別:服務(wù)。

Stack

Services (你在這里)

Container (涵蓋在第2部分中)

關(guān)于服務(wù)

在分布式應(yīng)用程序中,應(yīng)用程序的不同部分被稱為“服務(wù)”。例如,如果你想象一個(gè)視頻分享網(wǎng)站,它可能包括一個(gè)用于在數(shù)據(jù)庫(kù)中存儲(chǔ)應(yīng)用程序數(shù)據(jù)的服務(wù),一個(gè)在用戶上傳某個(gè)東西后在后臺(tái)進(jìn)行視頻轉(zhuǎn)換的服務(wù),一個(gè)為前端服務(wù)的服務(wù),等等。

服務(wù)實(shí)際上只是“生產(chǎn)中的容器”。一個(gè)服務(wù)只運(yùn)行一個(gè)鏡像,但它將以鏡像的方式運(yùn)行——它應(yīng)該使用的端口,容器應(yīng)該運(yùn)行多少個(gè)副本,這樣服務(wù)具有它需要的容量等等——的方式進(jìn)行了編碼。擴(kuò)展服務(wù)會(huì)改變運(yùn)行該軟件的容器實(shí)例的數(shù)量,為流程中的服務(wù)分配更多的計(jì)算資源。

幸運(yùn)的是,使用Docker平臺(tái)定義、運(yùn)行和擴(kuò)展服務(wù)很容易——只需編寫docker-compose.yml文件。

你的第一個(gè)docker-compose.yml文件

docker-compose.yml文件是一個(gè)YAML文件,它定義了Docker容器在生產(chǎn)中的行為。

docker-compose.yml

將此文件保存為docker-compose.yml無(wú)論什么位置。確保您已經(jīng)將在第2部分中創(chuàng)建的鏡像推送到注冊(cè)中心,更新這個(gè)yml文件,用你鏡像中的內(nèi)容替換username/repo:tag

version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    image: username/repo:tag
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "80:80"
    networks:
      - webnet
networks:
  webnet:

docker-compose.yml告訴Docker做下面的事情:

從注冊(cè)表中提取第2步中上傳的圖像。

將該映像的5個(gè)實(shí)例作為web服務(wù)運(yùn)行,限制每個(gè)CPU使用最多10%的CPU(跨所有內(nèi)核)和50MB RAM。

如果失敗,立即重新啟動(dòng)容器。

將端口80映射到web的端口80。

指示web容器通過一個(gè)名為webnet的負(fù)載均衡網(wǎng)絡(luò)共享端口80。(在內(nèi)部,容器本身將在臨時(shí)端口上發(fā)布到web的端口80。)

用默認(rèn)設(shè)置定義webnet網(wǎng)絡(luò)(這是一個(gè)負(fù)載均衡的覆蓋網(wǎng)絡(luò))。

運(yùn)行您的新負(fù)載平衡應(yīng)用程序

在我們使用docker stack deploy命令之前,我們先運(yùn)行:

docker swarm init

注意:我們將在第4部分中了解該命令的含義。如果你不運(yùn)行docker swarm init,你會(huì)得到一個(gè)錯(cuò)誤,“這個(gè)節(jié)點(diǎn)不是一個(gè)群集管理器。”

現(xiàn)在,讓我們來(lái)運(yùn)行它。你必須給你的應(yīng)用一個(gè)名字。在這里,它被設(shè)置為getstartedlab

docker stack deploy -c docker-compose.yml getstartedlab

我們的單一服務(wù)堆棧在一個(gè)主機(jī)上運(yùn)行我們部署映像的5個(gè)容器實(shí)例。讓我們調(diào)查。
在我們的應(yīng)用程序中獲得一個(gè)服務(wù)的服務(wù)ID:

docker service ls

您將看到web服務(wù)的輸出,并以您的應(yīng)用程序名稱為前提。如果您將其命名為與本例中顯示的相同,則名稱將為getstartedlab_web。服務(wù)ID也被列出,以及復(fù)制的數(shù)量、圖像名稱和暴露的端口。
在服務(wù)中運(yùn)行的單個(gè)容器稱為任務(wù)。任務(wù)被賦予獨(dú)特的id,replicas遞增,知道達(dá)到您在docker-compose.yml中定義的副本數(shù)量。列出服務(wù)的任務(wù):

docker service ps getstartedlab_web

如果您將系統(tǒng)上所有的容器列表列出,但這些任務(wù)也不會(huì)被服務(wù)過濾:

docker container ls -q

您可以多次運(yùn)行curl -4 http://localhost,或者在瀏覽器中訪問該URL并點(diǎn)擊刷新幾次。

無(wú)論如何,您將看到容器ID的更改,顯示負(fù)載平衡;在每個(gè)請(qǐng)求中,選擇一個(gè)循環(huán)模式的5個(gè)任務(wù)中的一個(gè)來(lái)響應(yīng)。容器id將與前面的命令(docker container ls -q)匹配。

擴(kuò)大app的規(guī)模

您可以通過在docker-compose.yml中更改replicas來(lái)擴(kuò)展應(yīng)用程序,保存更改,并重新運(yùn)行docker stack deploy命令:

docker stack deploy -c docker-compose.yml getstartedlab

Docker將做一個(gè)就地更新,不需要先拆下堆棧,也不需要?dú)⑺廊魏稳萜鳌?br>現(xiàn)在,重新運(yùn)行docker container ls -q,以查看已部署的實(shí)例重新配置。如果您將副本按比例放大,就會(huì)有更多的任務(wù),因此會(huì)有更多的容器。

拿下應(yīng)用程序和swarm

拿下應(yīng)用程序,用docker stack rm

docker stack rm getstartedlab

拿下swarm

docker swarm leave --force

這就像站起來(lái),和Docker一起擴(kuò)展你的應(yīng)用一樣簡(jiǎn)單。您已經(jīng)向?qū)W習(xí)如何在生產(chǎn)中運(yùn)行容器邁出了一大步。接下來(lái),您將學(xué)習(xí)如何在Docker機(jī)器集群上運(yùn)行這個(gè)應(yīng)用程序。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/27141.html

相關(guān)文章

  • Laravel Container (容器) 概念詳解 (上)

    摘要:上文書,創(chuàng)建對(duì)象需要先創(chuàng)建對(duì)象。創(chuàng)建對(duì)象的雜活是嵌入在中的。對(duì)象使用來(lái)管理依賴關(guān)系非常好,但不是必須的。很容易實(shí)現(xiàn),但手工維護(hù)各種亂七八糟的對(duì)象還是很麻煩。所有文章均已收錄至項(xiàng)目。 本文翻譯自 Symfony 作者 Fabien Potencier 的 《Dependency Injection in general and the implementation of a Depend...

    FullStackDeveloper 評(píng)論0 收藏0
  • Laravel Dependency Injection (依賴注入) 概念詳解

    摘要:依賴注入并不限于構(gòu)造函數(shù)作為經(jīng)驗(yàn),注入最適合必須的依賴關(guān)系,比如示例中的情況注入最適合可選依賴關(guān)系,比如緩存一個(gè)對(duì)象實(shí)例。 本文翻譯自 Symfony 作者 Fabien Potencier 的 《Dependency Injection in general and the implementation of a Dependency Injection Container in P...

    Fundebug 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<