Kubernetes 爆發嚴重漏洞:可能影響全部開源版本,請儘快升級

原文地址:kuboard.cn/install/ins…html

參考文檔:Info Q 文章 Kubernetes 爆發嚴重漏洞:可能影響全部開源版本 參考文檔:51CTO 安全頻道 Kubernetes的嚴重漏洞將全部服務器暴露在DoS攻擊面前!node

參考文檔: kubernetes 官網文檔 kubeadm upgradeapi

  • CVE-2019-9512 Ping Flood:攻擊者向 HTTP/2 對等體 (peer) 發送連續 ping,致使對等體創建內部響應隊列。這可能消耗過多 CPU 和內存——這取決於該數據的隊列多高效,從而可能致使拒絕服務攻擊。
  • CVE-2019-9514 Rest Flood:攻擊者打開多路數據流,並在每路數據流上發送無效請求,從而從對等體得到 RST_STREAM 幀數據流。這會消耗過多的內存、CPU 或 CPU 和內存——這取決於對等體如何將 RST_STREAM 幀列入隊列,從而可能致使拒絕服務攻擊。

Kubernetes 已經發布補丁以修復漏洞,建議全部管理員儘快升級到補丁版本,以幫助管理員應對漏洞:安全

  • Kubernetes v1.15.3 - go1.12.9
  • Kubernetes v1.14.6 - go1.12.9
  • Kubernetes v1.13.10 - go1.11.13

前提條件

  • 您使用 kubeadm 安裝了 kubernetes v1.15.0 / v1.15.1 / v1.15.2 集羣
  • 您想要將其升級到最新的版本 kubernetes v1.15.3

www.kuboard.cn 是一款免費的基於 Kubernetes 的微服務管理界面,目前只能提供 kubernetes v1.15.0 / v1.15.1 / v1.15.2 到 kubernetes v1.15.3 的升級文檔,其餘版本的集羣,請參考 kubernetes 官網文檔 kubeadm upgrade服務器

升級 kubeadm/kubelet/kubectl

在全部節點(包括 master、worker 節點)執行命令app

# 在全部節點執行(包括 master 和 worker 節點)
yum install -y kubelet-1.15.3 kubeadm-1.15.3 kubectl-1.15.3
systemctl daemon-reload
systemctl restart kubelet
複製代碼

查看集羣配置

在第一個 master 節點執行命令ide

# 只在第一個 master 節點執行
kubeadm config view
複製代碼

輸入結果以下所示:(根據集羣配置不同,您的結果可能不一樣)微服務

apiServer:
  extraArgs:
    authorization-mode: Node,RBAC
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: apiserver.demo:6443
controllerManager: {}
dns:
  type: CoreDNS
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io
kind: ClusterConfiguration
kubernetesVersion: v1.15.0
networking:
  dnsDomain: cluster.local
  serviceSubnet: 10.96.0.0/12
scheduler: {}
複製代碼

建立升級用的配置文件

建立文件 kubeadm-config-upgrade.yamlgoogle

文件內容以下所示,根據前面 kubeadm config view 的執行結果,修改了以下字段:spa

  • imageRepository 的值修改成:registry.cn-hangzhou.aliyuncs.com/google_containers
  • kubernetesVersion 的值修改成: v1.15.3
apiServer:
  extraArgs:
    authorization-mode: Node,RBAC
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: apiserver.demo:6443
controllerManager: {}
dns:
  type: CoreDNS
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: v1.15.3
networking:
  dnsDomain: cluster.local
  serviceSubnet: 10.96.0.0/12
scheduler: {}
複製代碼

執行 kubeadm upgrade 命令

在第一個 master 節點上執行:

查看升級後的變化

# 只在第一個 master 節點執行
kubeadm upgrade diff --config kubeadm-config-upgrade.yaml
複製代碼

執行升級 dry-run

# 只在第一個 master 節點執行
kubeadm upgrade apply --config kubeadm-config-upgrade.yaml --dry-run
複製代碼

執行升級動做

# 只在第一個 master 節點執行
kubeadm upgrade apply --config kubeadm-config-upgrade.yaml
複製代碼

升級 worker 節點

針對全部的 worker 節點,執行

# 只在 worker 節點執行(全部的 worker 節點)
kubeadm upgrade node
複製代碼

檢查升級結果

在第一個 master 節點執行

# 只在第一個 master 節點執行
kubectl get nodes -o wide
kubectl version
kubeadm config view
複製代碼
相關文章
相關標籤/搜索