1、libeness probe的三種檢測機制web
- HTTP GET:對容器的IP(指定的端口和路徑)執行HTTP GET請求,收到響應並返回狀態碼不表明錯誤(2xx/3xx),成功
- TCP socket:與容器指定端口創建TCP連接,創建連接成功,表示檢測成功
- Exec:在容器內執行自定義命令,退出狀態碼是0,檢測成功
2、liveness probe探測機制後端
- kubernetes會在容器崩潰或健康檢測失敗時(默認連續3次檢測都失敗,則認爲檢測失敗)經過重啓容器保持運行
- 當容器被強制終止時,會建立一個新的容器(而不是重啓原來的容器)
- 探測附加屬性:
delay(延遲):容器啓動後延遲多久開始監控檢測(務必設置一個合理的延遲時間,不然在容器進程爲徹底運行前,檢測已經失敗,致使容器進入重啓死循環)
timeout(超時):容器的響應時間,超過設定值則超時
period(週期):間隔多久進行下一次檢測
failure(失敗):連續失敗多少次後斷定檢測失敗
- 檢測的準確行:僅檢測容器自身進程,(web前段正常,後端故障,重啓前段沒法恢復問題)
- 檢測的輕量:資源消耗低、運行時間短(保證容器的輕量的同時不影響容器的運行質量)
- 健康檢測重啓pod是經過節點kubectl完成的(若節點故障則沒法恢復)
4、ReplicationController(簡稱:RC)socket
- RC是一種資源,確保他的pod始終運行在指望的狀態(用戶指定的pod數量,即:幾副本狀態)
- RC會持續監控正在運行的pod列表
- 當RC的pod不管因何種數量發生變化,RC會根據模板新建,或刪除必定數量的pod,已確保pod運行在指望的狀態
- 經過RC能夠實現pod的手動/自動伸縮
5、RC的組成
- label selector:標籤選擇器,用於肯定RC做用域中有哪些pod(yml文件能夠不指定,默認會根據pod的模板讀取)
- replica count:副本數量,指定運行的pod數量
- pod template:pod模板,用於建立新的pod副本
6、RC的做用域 spa
- RC經過做用域管理對應標籤的pod
- 修改pod的標籤後,pod將脫離RC的管控,當pod故障時不會從新被調度
- 注意:當修改pod的標籤後,對RC自己無影響,他會從新建立出新的pod,直至達到預期狀態
7、使用ReplicaSet(簡稱RS)代替RC進程
- ReplicaSet與RC的行爲徹底相同
- ReplicaSet能夠僅經過標籤的key匹配pod(RC必須匹配完整的標籤:keyvalue)
- 修改ReplicaSet對現有的pod無影響,若想更新RS,能夠刪除現有的pod,RS會更具模板建立新的pod
8、更具表達力的標籤選擇器資源
- key:標籤的名稱
- operator:運算符:多個運算符能夠一塊兒使用,可是必須全部表達式都爲true
1)In:label的值必須與其中一個指定的values匹配
2)NotIn:Label的值與指定的全部values都不匹配
3)Exists:只匹配key部分,使用次運算符時不指定values字段
4)DoesNotExist:匹配除指定key之外的全部key ,使用次運算符時不指定values字段
- values:標籤的值
9、DaemonSet在每一個節點運行一個pod作用域
- DaemonSet的目的是用來運行系統服務
- 確保每一個節點上運行一個pod
- 如有人在某一節點刪除了一個pod,那麼DaemonSet會在該節點重建pod
- 當新節點加入集羣時,DaemonSet會馬上部署一個新的pod
- DaemonSet也能夠只在集羣中指定節點部署pod(由pod模板指定)
- 注意:在集羣中能夠設置節點的屬性爲「不可調用」,可是DaemonSet仍是會在這些節點部署pod,由於DaemonSet不經過調度器進行調度