安全漏洞CVE-2019-3874分析html
Kubernetes近期重要bug fix分析git
Kubernetes v1.13.5 bug fix數據分析github
——本週更新內容 api
安全漏洞CVE-2019-3874分析安全
3月21日,Kubernetes社區經過Google Group頻道Kubernetes developer/contributor discussion發佈了安全漏洞CVE-2019-3874以及解決方法。服務器
這個安全漏洞最先由紅帽的工程師Matteo Croce,Natale Vinto和Andrea Spagnolo發現。當Kubernetes中的Pod以Root用戶運行時,它能夠繞過cgroup內存隔離,經過SCTP網絡傳輸,建立一個潛在的DoS攻擊,此問題自己與Kubernetes無關,可是涉及到Kubernetes調用的內核模塊。問題的嚴重性被定義爲中等,社區建議將SCTP內核模塊列入黑名單來規避此問題。用戶能夠經過執行以下命令來測試是否會到此類攻擊。網絡
modprobe sctp; lsmod | grep sctp測試
用戶能夠經過執行以下命令來把SCTP列入內核模塊的黑名單。優化
echo "install sctp /bin/true" > /etc/modprobe.d/sctp.confhtm
若是SCTP模塊已經載入內核,則須要重啓機器來從內核中卸載SCTP模塊。CVE-2019-3874安全漏洞的內核補丁正在開發中,可是經過將SCTP內核模塊列入黑名單能夠保護用戶永久免受此類攻擊。
CVE-2019-3874連接:
https://access.redhat.com/security/cve/cve-2019-3874
Kubernetes近期重要bug fix分析
•#74672移除
致使內存泄漏的Reflector Metrics
https://github.com/kubernetes/kubernetes/pull/74672
該問題的背景是#73587這個Issue。用戶在升級到v1.12.5以後,發現集羣內節點上Kubelet在運行一段時間後吃掉了全部的內存,致使節點故障。使用go tool pprof發現Client Go Metrics耗費了大部分的計算時間。這些Reflector Metrics並非必不可少,該PR移除了以下的Metrics來解決內存泄漏的問題:
reflector_items_per_list
reflector_items_per_watch
reflector_last_resource_version
reflector_list_duration_seconds
reflector_lists_total
reflector_short_watches_total
reflector_watch_duration_seconds
reflector_watches_total
•#74865獲取不到
包含有InitContainers的Pod的Metrics
https://github.com/kubernetes/kubernetes/pull/74865
該問題的初始現象是Metrics Server獲取不到包含有InitContainers的Pod的Metrics。
根本緣由在於退出的容器(如InitContainers)CPU和Memory都爲Nil致使Metrics服務器將跳過Pod的處理。具體是removeTerminatedContainer的實現忽略了cri提供的runtimeapi.Container和cadvisor提供的cadvisorapiv2.ContainerInfo的不一樣。
此問題的解決方法是在原有上報Nil的狀況下,修改成上報退出容器的CPU和Memory爲0。
•#75366延遲CSI Client初始化
以解決CSI Volume Plugin在Kubelet重啓後
不可用的問題
https://github.com/kubernetes/kubernetes/pull/75366
該問題的背景是#72500這個Issue。在Kubelet重啓後,CSI Volume Plugin可能不會被從新註冊。這些Volume Plugin未註冊會相應地致使這些Plugin關聯的Volume的操做沒法進行。解決辦法是在Kubelet重啓後,單獨提取一個csiClientGetter的Get()方法用於當初始化失敗時,能經過延遲CSI Client初始化的方式來從新註冊CSI Volume Plugin。
•#75364區分Volume Path和Mount Path
https://github.com/kubernetes/kubernetes/pull/75364
一般狀況下大部分的Volume Plugin會去檢查Mount在Pod的Volume第一層級的目錄,可是對於CSI Plugin卻不是這樣,CSI Plugin可能會Mount在子目錄上。這個PR修改了Kubelet中VolumePath和MountPath引用的邏輯,實現對CSI的優化。
Kubernetes v1.13.5 bug fix數據分析
分類數量和佔比統計以下:
嚴重程度數量統計以下(橫座標5爲最高,0爲最低):
以下爲Kubernetes v1.13.5全部bug fix的彙總信息:
相關服務請訪問:https://support.huaweicloud.com/cce/index.html?utm_content=cce_helpcenter_2019