五月开心播播网_国内精品伊人久久久久影院对白_亚洲精品高清视频_国产精品激情_68精品久久久久久欧美_四虎免费av_97精品在线视频_欧美知名女优

您的位置:首頁技術文章
文章詳情頁

Docker 容器健康檢查機制

瀏覽:7日期:2024-11-22 08:54:02

摘要: 在分布式系統中,經常需要利用健康檢查機制來檢查服務的可用性,防止其他服務調用時出現異常。自 1.12 版本之后,Docker 引入了原生的健康檢查實現。本文將介紹Docker容器健康檢查機制,以及在Docker Swarm mode下面的新特性

Docker 容器健康檢查機制

在分布式系統中,經常需要利用健康檢查機制來檢查服務的可用性,防止其他服務調用時出現異常。

對于容器而言,最簡單的健康檢查是進程級的健康檢查,即檢驗進程是否存活。Docker Daemon會自動監控容器中的PID1進程,如果docker run命令中指明了restart policy,可以根據策略自動重啟已結束的容器。在很多實際場景下,僅使用進程級健康檢查機制還遠遠不夠。比如,容器進程雖然依舊運行卻由于應用死鎖無法繼續響應用戶請求,這樣的問題是無法通過進程監控發現的。

在Kubernetes提供了Liveness與Readness探針分別對Container及其服務健康狀態進行檢查。阿里云容器服務也提供了類似的 服務健康檢查機制 。

Docker 原生健康檢查能力

而自 1.12 版本之后,Docker 引入了原生的健康檢查實現,可以在Dockerfile中聲明應用自身的健康檢測配置。HEALTHCHECK 指令聲明了健康檢測命令,用這個命令來判斷容器主進程的服務狀態是否正常,從而比較真實的反應容器實際狀態。

HEALTHCHECK 指令格式:

HEALTHCHECK [選項] CMD <命令>:設置檢查容器健康狀況的命令 HEALTHCHECK NONE:如果基礎鏡像有健康檢查指令,使用這行可以屏蔽掉

注:在Dockerfile中 HEALTHCHECK 只可以出現一次,如果寫了多個,只有最后一個生效。

使用包含 HEALTHCHECK 指令的dockerfile構建出來的鏡像,在實例化Docker容器的時候,就具備了健康狀態檢查的功能。啟動容器后會自動進行健康檢查。

HEALTHCHECK 支持下列選項:

--interval=<間隔>:兩次健康檢查的間隔,默認為 30 秒; --timeout=<間隔>:健康檢查命令運行超時時間,如果超過這個時間,本次健康檢查就被視為失敗,默認 30 秒; --retries=<次數>:當連續失敗指定次數后,則將容器狀態視為 unhealthy,默認 3 次。 --start-period=<間隔>: 應用的啟動的初始化時間,在啟動過程中的健康檢查失效不會計入,默認 0 秒; (從17.05)引入

在 HEALTHCHECK [選項] CMD 后面的命令,格式和 ENTRYPOINT 一樣,分為 shell 格式,和 exec 格式。命令的返回值決定了該次健康檢查的成功與否:

0:成功; 1:失?。? 2:保留值,不要使用

容器啟動之后,初始狀態會為 starting (啟動中)。Docker Engine會等待 interval 時間,開始執行健康檢查命令,并周期性執行。如果單次檢查返回值非0或者運行需要比指定 timeout 時間還長,則本次檢查被認為失敗。如果健康檢查連續失敗超過了 retries 重試次數,狀態就會變為 unhealthy (不健康)。

注:

一旦有一次健康檢查成功,Docker會將容器置回 healthy (健康)狀態 當容器的健康狀態發生變化時,Docker Engine會發出一個 health_status 事件。

假設我們有個鏡像是個最簡單的 Web 服務,我們希望增加健康檢查來判斷其 Web 服務是否在正常工作,我們可以用 curl來幫助判斷,其 Dockerfile 的 HEALTHCHECK 可以這么寫:

Docker 容器健康檢查機制

Docker 容器健康檢查機制

我們可以通過 docker ps,來發現過了幾秒之后,Elasticsearch容器從 starting 狀態進入了 healthy 狀態

Docker 容器健康檢查機制

另外一種方法是在 docker run 命令中,直接指明healthcheck相關策略。

Docker 容器健康檢查機制

為了幫助排障,健康檢查命令的輸出(包括 stdout 以及 stderr)都會被存儲于健康狀態里,可以用 docker inspect 來查看。我們可以通過如下命令,來獲取過去5個容器的健康檢查結果

Docker 容器健康檢查機制

Docker 容器健康檢查機制

示例結果如下

Docker 容器健康檢查機制

由于應用的開發者會更加了解應用的SLA,一般建議在Dockerfile中聲明相應的健康檢查策略,這樣可以方便鏡像的使用。對于應用的部署和運維人員,可以通過命令行參數和REST API針對部署場景對健康檢查策略按需進行調整。

Docker社區為提供了一些包含健康檢查的實例鏡像,我們可以在如下項目中獲取 https://github.com/docker-library/healthcheck

注:

阿里云容器服務同時支持Docker原生健康檢測機制和阿里云的擴展檢查機制 目前Kubernetes還不提供對Docker原生健康檢查機制的支持。 Docker Swarm mode中的服務健康檢查能力

在Docker 1.13之后,在Docker Swarm mode中提供了對健康檢查策略的支持

可以在 docker service create 命令中指明健康檢查策略

Docker 容器健康檢查機制

在Swarm模式下,Swarm manager會監控服務task的健康狀態,如果容器進入 unhealthy 狀態,它會停止容器并且重新啟動一個新容器來取代它。這個過程中會自動更新服務的 load balancer (routing mesh) 后端或者 DNS記錄,可以保障服務的可用性。

在1.13版本之后,在服務更新階段也增加了對健康檢查的支持,這樣在新容器完全啟動成功并進入健康狀態之前,load balancer/DNS解析不會將請求發送給它。這樣可以保證應用在更新過程中請求不會中斷。

下面是在服務更新過程的時序圖

Docker 容器健康檢查機制

總結

在企業生產環境中,合理的健康檢查設置可以保證應用的可用性。現在很多應用框架已經內置了監控檢查能力,比如Spring Boot Actuator。配合Docker內置的健康檢測機制,可以非常簡潔實現應用可用性監控,自動故障處理,和零宕機更新。

作者:易立 ,阿里資深技術專家,關注Docker,微服務、云計算、機器學習等領域。

來自: click.aliyun.com/m/29196/

標簽: Docker
相關文章:
欧美多人乱p欧美4p久久| 午夜黄色一级片| 黄色网址网站| 高清色视频在线观看| 午夜激情视频在线| 成人国产一区二区三区精品麻豆| 国产精品伦一区二区| 香蕉久久精品| 国产农村妇女精品一二区| 韩国欧美一区二区| 国产精品久久影院| 欧美日韩一卡二卡三卡| 伊人精品在线观看| 国产精品久久综合av爱欲tv| 蜜桃av噜噜一区二区三| 亚洲熟妇av日韩熟妇在线| 91网址在线观看精品| 人妻久久一区二区| 亚洲国产精品视频在线| 来个黄色网址| 最新97超碰在线| 欧美一区=区三区| 一区二区三区四区日韩| 国产v综合v亚洲欧| 狠狠色狠狠色综合日日五| 亚洲精选中文字幕| 成人国产精品久久久久久亚洲| 一区二区不卡在线观看| 日韩黄色一区二区| 久久国产视频精品| free极度另类性欧美| 成人免费在线观看| 99a精品视频在线观看| 国产免费成人| 一区二区三区在线观看欧美| 日韩av在线最新| 国产欧美一区二区白浆黑人| 欧美精品一区二区三区三州| 国产小视频自拍| 亚洲爆乳无码一区二区三区| 国产偷激情在线| 日本三级免费观看| 亚洲综合欧美综合| 日韩中文字幕免费观看| 天堂资源在线观看| 91精品国产自产观看在线| 亚洲美洲欧洲综合国产一区| 日韩一区欧美一区| 亚洲日韩中文字幕在线播放| 国产精品久久久久久久天堂第1集 国产精品久久久久久久免费大片 国产精品久久久久久久久婷婷 | se69色成人网wwwsex| 亚洲情侣在线| 亚洲女人小视频在线观看| 色婷婷av一区二区三区久久| 欧美福利一区二区三区| 三级av免费看| 99精品在线视频观看| 中文在线三区| 天堂成人娱乐在线视频免费播放网站 | 天天爽夜夜爽一区二区三区| 男女啊啊啊视频| 成人免费黄色网址| 97超碰成人| 久久精品人人做人人爽人人| 亚洲人成自拍网站| 小说区图片区图片区另类灬| 国产在线免费看| 又黄又湿又爽又免费又色| 日韩新的三级电影| 极品少妇xxxx精品少妇偷拍| 欧美精品一卡二卡| 国产一级精品aaaaa看| av直播在线观看| 国产最新网站| 日韩在线影院| 成人动漫中文字幕| 中文字幕欧美日韩在线| 91精品一区二区三区四区| 日韩乱码在线观看| eeuss在线播放| 免费一区二区| 亚洲一区二区三区精品在线| 国产成人免费av电影| 任你躁av一区二区三区| 免费黄色欧美视频| 四虎国产精品成人免费影视| av毛片久久久久**hd| 不卡av日日日| 爱情岛论坛vip永久入口| 亚洲精品无遮挡| а√在线天堂官网| 粉嫩欧美一区二区三区高清影视| 深夜福利国产精品| 黄色三级视频在线| 综合欧美视频一区二区三区| 天天免费亚洲黑人免费| 92精品国产成人观看免费| 欧美极品少妇全裸体| 国产毛片久久久久久| 精品一区二区三区免费站| 国产一区二区三区免费在线| 久久久影院官网| 欧美主播福利视频| av网站免费在线看| 欧美黑人孕妇孕交| 欧美黄色精品| 亚洲国产精久久久久久| 久久成人免费观看| 中文字幕麻豆| 超碰在线亚洲| 色偷偷一区二区三区| 欧洲成人一区二区| 亚洲综合网av| 黄色成人在线网| 99精品一区二区| 国产suv精品一区二区| 国产真人真事毛片视频| 最新天堂资源在线资源| 日本欧美一区二区在线观看| www亚洲欧美| 日韩精品――色哟哟| 极品尤物av丝袜美腿在线观看| 999精品视频| 亚洲激情在线观看视频免费| 五月婷婷狠狠操| 黄色免费网站观看| 亚洲黄色高清| 久久精品一区中文字幕| 日本不卡视频一区| 最新精品视频在线| 韩国午夜理伦三级不卡影院| 91成人福利在线| 精品无码人妻一区二区三区| 黄色在线免费看| 国产欧美精品日韩区二区麻豆天美| 91超碰rencao97精品| 黄色污污视频软件| 欧洲亚洲精品| 88在线观看91蜜桃国自产| 免费大片在线观看| 色综合小说天天综合网| 蜜乳av另类精品一区二区| 欧美国产亚洲视频| avtt天堂在线| 成人性生活视频| 日韩欧亚中文在线| 人妻熟妇乱又伦精品视频| 最新福利小视频在线播放| 亚洲成人直播| 欧美一级片免费在线| 在线观看 亚洲| 成人在线分类| 精品国产免费一区二区三区四区| 日韩手机在线观看视频| 二区视频在线| 丁香六月久久综合狠狠色| 国产精品成人观看视频免费| 精品国产18久久久久久| 在线观看欧美理论a影院| 亚洲片在线资源| 日本成人精品视频| a在线视频v视频| 在线视频国内自拍亚洲视频| 日本激情视频在线| 在线国产1区| 亚洲国产成人自拍| wwwjizzjizzcom| 天天看天天干| 99在线精品观看| 影音欧美亚洲| 天天色天天上天天操| 国产91精品一区二区麻豆网站| 国产自产在线视频一区| 欧美黑人巨大xxxx猛交| 日韩精品乱码免费| 春色成人在线视频| 精品偷拍激情视频在线观看| 午夜在线精品| 高清视频一区| 再深点灬舒服灬太大了添少妇视频 | 亚洲成人久久影院| 性欧美极品xxxx欧美一区二区| 在线看小视频| 亚洲在线成人精品| 色噜噜狠狠一区二区三区狼国成人| 欧美女优在线| 欧美特黄级在线| 亚洲欧美视频在线播放| 欧美另类老肥妇| 亚洲福利视频免费观看| 久久久久黄色片| 在线日韩网站| 国产激情综合五月久久| 美女把尿口扒开给男人桶视频| 日韩电影在线一区二区三区| 欧美一区2区三区4区公司二百 | 国产探花在线精品| 国产精品∨欧美精品v日韩精品| 顶级嫩模一区二区三区| 国产一区久久久|