k8s-RC副本機制


一、libeness probe的三種檢測機制

  1. HTTP GET:對容器的IP(指定的端口和路徑)執行HTTP GET請求,收到響應並返回狀態碼不代表錯誤(2xx/3xx),成功
  2. TCP socket:與容器指定端口建立TCP鏈接,建立鏈接成功,表示檢測成功
  3. Exec:在容器內執行自定義命令,退出狀態碼是0,檢測成功 

 

二、liveness probe探測機制

  1. kubernetes會在容器崩潰或健康檢測失敗時(默認連續3次檢測都失敗,則認為檢測失敗)通過重啟容器保持運行 
  2. 當容器被強制終止時,會創建一個新的容器(而不是重啟原來的容器)
  3. 探測附加屬性:
    delay(延遲):容器啟動后延遲多久開始監控檢測(務必設置一個合理的延遲時間,否則在容器進程為完全運行前,檢測已經失敗,導致容器進入重啟死循環)
    timeout(超時):容器的響應時間,超過設定值則超時
    period(周期):間隔多久進行下一次檢測
    failure(失敗):連續失敗多少次后判定檢測失敗
  4. 檢測的准確行:僅檢測容器自身進程,(web前段正常,后端故障,重啟前段無法恢復問題)
  5. 檢測的輕量:資源消耗低、運行時間短(保證容器的輕量的同時不影響容器的運行質量)
  6. 健康檢測重啟pod是通過節點kubectl完成的(若節點故障則無法恢復)

 

 


四、ReplicationController(簡稱:RC)

  1. RC是一種資源,確保他的pod始終運行在期望的狀態(用戶指定的pod數量,即:幾副本狀態)
  2. RC會持續監控正在運行的pod列表
  3. 當RC的pod無論因何種數量發生變化,RC會根據模板新建,或刪除一定數量的pod,已確保pod運行在期望的狀態
  4. 通過RC可以實現pod的手動/自動伸縮
五、RC的組成
  1. label selector:標簽選擇器,用於確定RC作用域中有哪些pod(yml文件可以不指定,默認會根據pod的模板讀取)
  2. replica count:副本數量,指定運行的pod數量 
  3. pod template:pod模板,用於創建新的pod副本

 

 

六、RC的作用域 

  1. RC通過作用域管理對應標簽的pod
  2. 修改pod的標簽后,pod將脫離RC的管控,當pod故障時不會重新被調度
  3. 注意:當修改pod的標簽后,對RC本身無影響,他會重新創建出新的pod,直至達到預期狀態 

 

七、使用ReplicaSet(簡稱RS)代替RC

  1. ReplicaSet與RC的行為完全相同
  2. ReplicaSet可以僅通過標簽的key匹配pod(RC必須匹配完整的標簽:keyvalue)
  3. 修改ReplicaSet對現有的pod無影響,若想更新RS,可以刪除現有的pod,RS會更具模板創建新的pod 

 

八、更具表達力的標簽選擇器

 

  1. key:標簽的名稱
  2. operator:運算符:多個運算符可以一起使用,但是必須所有表達式都為true
    1)In:label的值必須與其中一個指定的values匹配
    2)NotIn:Label的值與指定的所有values都不匹配
    3)Exists:只匹配key部分,使用次運算符時不指定values字段
    4)DoesNotExist:匹配除指定key以外的所有key ,使用次運算符時不指定values字段
  3. values:標簽的值

 

 九、DaemonSet在每個節點運行一個pod

 

  1. DaemonSet的目的是用來運行系統服務
  2. 確保每個節點上運行一個pod
  3. 若有人在某一節點刪除了一個pod,那么DaemonSet會在該節點重建pod
  4. 當新節點加入集群時,DaemonSet會立刻部署一個新的pod
  5. DaemonSet也可以只在集群中指定節點部署pod(由pod模板指定) 
  6. 注意:在集群中可以設置節點的屬性為“不可調用”,但是DaemonSet還是會在這些節點部署pod,因為DaemonSet不通過調度器進行調度

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM