成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

Docker 容器健康檢查機制

瀏覽:6日期: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 容器健康檢查機制

總結

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

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

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

標簽: Docker
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美色视频在线观看| 懂色av一区二区三区免费观看| 精品亚洲国产成人av制服丝袜| 蘑菇福利视频一区播放| 亚洲激情五月婷婷| 黄色成人在线网址| 亚洲国产成人在线| 91免费看`日韩一区二区| 制服视频三区第一页精品| 美女精品一区二区| 欧美三级在线看| 久久99精品久久久久婷婷| 色妹子一区二区| 日韩高清在线电影| 久久精品三级| 日韩激情一区二区| 色婷婷综合久久久久中文一区二区 | 国产色91在线| 91亚洲资源网| 国产女同互慰高潮91漫画| 欧美欧美天天天天操| 国产精品无码永久免费888| 欧美日韩亚洲一区| 国产精品福利av| 亚洲二区在线| 亚洲一区在线观看网站| 久久久亚洲一区| 久久精品国产在热久久| 4438x亚洲最大成人网| 国产xxx精品视频大全| 欧美精品一区二区久久久| 99久久久久免费精品国产| 国产欧美一区二区精品性色| 狠狠色丁香久久综合频道| 中文字幕精品在线不卡| 亚洲国产日本| 五月激情六月综合| 欧美色图片你懂的| 丰满放荡岳乱妇91ww| 久久日韩粉嫩一区二区三区| 欧美激情第二页| 亚洲靠逼com| 一本大道综合伊人精品热热| 激情久久五月天| 久久伊人中文字幕| 欧美性久久久| 亚洲国产三级在线| 精品视频一区三区九区| 大尺度一区二区| 国产日本亚洲高清| 99国内精品| 久久精品国产在热久久| 欧美成人午夜电影| 欧美日本二区| 偷窥少妇高潮呻吟av久久免费| 欧美一区在线视频| 欧美日韩亚洲一区二区三区四区| 亚洲综合视频在线| 欧美日韩三级视频| 欧美日本一区二区高清播放视频| 亚洲精品五月天| 欧美视频一区二| 欧美一区二区三区四区夜夜大片| 亚洲小少妇裸体bbw| 欧美性大战久久久| 91丨porny丨国产入口| 艳妇臀荡乳欲伦亚洲一区| 欧美午夜精品理论片a级按摩| 成人av综合一区| 亚洲乱码中文字幕| 欧美日韩免费电影| 欧美日韩亚洲一区三区| 日韩高清不卡一区二区| 精品国产不卡一区二区三区| 亚洲国产欧美国产综合一区| 久久99精品国产麻豆不卡| 国产女同性恋一区二区| 色婷婷综合久久久中文字幕| 99久久99精品久久久久久 | 久久视频一区二区| 一区二区免费在线视频| 国产在线播放一区二区三区| 国产欧美日韩视频在线观看| 免费视频一区| 成人国产精品免费观看动漫| 亚洲与欧洲av电影| 日韩欧美一二三区| 国产亚洲高清视频| 成人aa视频在线观看| 日韩影院精彩在线| 国产欧美日韩激情| 欧美伊人精品成人久久综合97| 国产精品v欧美精品v日韩| 精品一区二区三区视频| 亚洲日本中文字幕区| 欧美一区二区三区视频免费| 99国产精品久久久久久久成人热 | 欧美一区二区人人喊爽| 亚洲欧洲精品一区二区三区波多野1战4| 久久99精品视频| 最新热久久免费视频| 欧美精品v日韩精品v韩国精品v| 激情久久中文字幕| 国产麻豆精品久久一二三| 亚洲免费在线视频| 欧美tk—视频vk| 久久综合一区二区三区| 欧美日韩a区| 国产精品一区二区久久精品爱涩| 亚洲乱码中文字幕综合| 精品国产凹凸成av人网站| 一本到一区二区三区| 欧美人与禽性xxxxx杂性| 久久91精品国产91久久小草| 樱花草国产18久久久久| 国产欧美日韩中文久久| 欧美一区二区视频免费观看| 久久久久国产精品一区三寸| 午夜免费电影一区在线观看| 国产精品 日产精品 欧美精品| 亚洲一区在线播放| 国产欧美一区在线| 91精品啪在线观看国产60岁| 亚洲欧美精品| 国产综合色产| 成人黄色网址在线观看| 美女视频黄久久| 伊人婷婷欧美激情| 国产日韩欧美精品在线| 91.com视频| 老牛影视一区二区三区| 亚洲日本视频| 欧美.www| 成人小视频免费在线观看| 免费不卡在线视频| 亚洲电影欧美电影有声小说| 中文字幕av一区二区三区免费看 | 午夜精品福利久久久| 亚洲欧洲精品一区二区精品久久久| 欧美一级免费大片| 色av综合在线| 国产午夜精品一区二区三区欧美 | 成人精品视频一区| 国产乱人伦精品一区二区在线观看 | 国产一区二区91| 日韩高清在线一区| 怡红院av一区二区三区| 国产精品久久久久久久久快鸭| 欧美精品一区二| 日韩视频中午一区| 555夜色666亚洲国产免| 色噜噜狠狠色综合中国| 国产一区二区三区黄| 在线精品亚洲| 欧美特黄一区| 94-欧美-setu| 亚洲国产日韩精品| 亚洲欧美日本韩国| 国产校园另类小说区| 久久在线观看免费| 久久久久国产成人精品亚洲午夜| 日韩精品一区二区在线| 日韩一级黄色大片| 日韩欧美国产电影| 日韩一区二区在线观看视频播放| 91精品国产综合久久精品麻豆| 欧美日本一区二区| 欧美性猛交xxxx黑人交| 91精品福利视频| 在线中文字幕一区二区| 91行情网站电视在线观看高清版| 久久精品一区二区三区中文字幕| 先锋影音久久| 一本色道**综合亚洲精品蜜桃冫 | 欧美视频日韩视频在线观看| 欧美影片第一页| 日本乱人伦一区| 欧美日韩专区在线| 欧美伦理电影网| 欧美久久免费观看| 7777精品伊人久久久大香线蕉超级流畅| 欧美日韩国产一区| 91精品国产日韩91久久久久久| 日韩一区二区影院| 久久综合久久鬼色| 国产精品你懂的| 亚洲欧美日韩综合aⅴ视频| 亚洲免费观看视频| 亚洲成在线观看| 人人狠狠综合久久亚洲| 狠狠色狠狠色综合日日91app| 国产精品综合视频| voyeur盗摄精品| 欧美福利电影在线观看| 亚洲手机在线| 亚洲少妇一区| 91久久国产最好的精华液| 51精品国自产在线| 久久免费视频一区| 亚洲人妖av一区二区|