技术方案之 Kubernetes Master Node 优雅滚动替换方案

Kubernetes Master Node 优雅滚动替换方案

Posted by 董江 on Sunday, July 31, 2022

Kubernetes Master Node 优雅滚动替换方案

Kubernetes Master Node部署的都是 控制平面 Control 组件,并不需要处理数据平面 Data南北项、东西项流量,因此,核心就是在Kubernetes Master各个应用组件的高可用、优雅变更

并且Kubernetes Master各个组件,自身设计上,就可以做到存储计算分离多实例实现高可用。

因此,Kubernetes Master Node 扩容缩容读写分离优雅替换版本等操作流程是一样的。

常规上线Master部署方式

Master

  • etcd数据库的高可用性 : etcd 采用3个节点组建集群实现高可用
  • kubernetes master 组件的高可用性 : kube-controller-mansgerkube-scheduler 组件自身选主机制已经实现了高可用; kube-apiserver组件,增加负载均衡器对其负载均衡即可,并且可水平扩容

etcd 扩容缩容

etcd 可以支持在线动态扩容,无须重启etcd集群

etcd 扩容

etcd集群一般采用3台机器组建集群,作为集群高可用,集群所在的机房也要高可用,通常3台机器分布在两个机房,但假如遇到机房层面的故障,可能会导致etcd集群不能正常工作,基于以上原因,我们需要扩容需要是 2的倍数 进行扩容,包括在集群在多region、多az下是该可用

  • etcd 新机器初始化(SSD、kernel优化)等
  • 拷贝之前的etcd证书到新机器
  • 启动etcd服务 :性能调优之 ETCD
  • 通过etcdctl Member add xxx 方式添加新节点
  • 通过etcdctl Member list 方式添加新节点是否生效(从follow->slave),可提供服务

etcd 缩容

etcd扩容后,希望下线那个节点

  • 通过etcdctl Member remove xxx 方式去掉此节点
  • 通过etcdctl Member list 确认此节点,下线成功

kubernetes master 组件

kubernetes master 扩容

  • 拷贝之前的各类证书(apiserver server 证书、etcd client 证书等)到新机器
  • 静态pod 启动实例
  • 添加apiserver endpoint addr 到 nginx(vip) lb上

kubernetes master 缩容

  • 将apiserver endpoint addr 从 nginx lb中去掉
  • 查看apiserver流量,并停止静态pod
  • 下线集群

「如果这篇文章对你有用,请随意打赏」

Kubeservice博客

如果这篇文章对你有用,请随意打赏

使用微信扫描二维码完成支付