宕機處理:Kubernetes集羣高可用實戰總結

導語 | 在企業生產環境,Kubernetes高可用是一個必不可少的特性,其中最通用的場景就是如何在Kubernetes集羣宕機一個節點的情況下保障服務依舊可用。本文對在該場景下實現集羣和應用高可用過程中遇到的各種問題進行了梳理和總結,希望與大家一同交流。文章作者,騰訊雲架構服務研發工程師。

一、整體架構

1. control plane node

管理節點採用 kubeadm 搭建的 3 節點標準高可用方案:Stacked etcd topology [1].

該方案中,所有管理節點都部署 kube-apiserver,kube-controller-manager,kube-scheduler,以及 etcd 等組件。

kube-apiserver 均與本地的 etcd 進行通信,etcd 在三個節點間同步數據。而 kube-controller-manager 和 kube-scheduler 也只與本地的 kube-apiserver 進行通信(或者通過 LB 訪問)。

kube-apiserver 前面頂一個 LB;work 節點 kubelet 以及 kube-proxy 組件對接 LB 訪問 apiserver 。

在這種架構中,如果其中任意一個 master 節點宕機了,由於 kube-controller-manager 以及 kube-scheduler 基於 Leader Election Mechanism [2]實現了高可用,可以認爲管理集羣不受影響,相關組件依舊正常運行(在分佈式鎖釋放後)。

原文鏈接:【https://www.infoq.cn/article/aMsCvWzhR1It5CxpDWXK】。未經作者許可,禁止轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章