首页 > 其他分享 >kubernetes集群的高可用架构

kubernetes集群的高可用架构

时间:2023-04-24 12:22:31浏览次数:44  
标签:az 架构 kubernetes Kubernetes 可用 集群 Master kube

概述

kubernete在云平台的高可用分为两种情形

  • 单az的高可用集群搭建
  • 多az的高可用集群搭建

这两种情形其实就是一个k8s集群内部的高可用,只是多az的场景下能够实现更高级别的高可用,此时k8s需要跨az部署集群。

集群内部的高可用需要实现基础组件的高可用,其中最重要的就是etcd和apiserver。当然schedule和cm也同样重要,但是这两个组件需要主从的模式(需要选主策略)进行处理,因为对于同一个事件,只能有一台schedule和cm去进行处理,当然也可以数据分片并发,只是需要代理层进行处理,相对实现会比较麻烦一些。

在正式环境中确保Master高可用,并启用访问安全机制,至少应包括以下几个方面:

  • Master的kube-apiserver、kube-controller-mansger和kube-scheduler服务至少三个结点的多实例方式部署。
  • ETCD至少以3个结点的集群模式部署。(etcd本身具有高可用特性,能实现多台机器之间的兼容)
  • Master、ETCD集群启用基于CA认证的HTTPS安全机制,Master启用RBAC授信机制。
  • Load Balance使用双机热备,向Node暴露虚拟IP作为入口地址,供客户端访问。

这里需要注意的是etcd、controller manager、kube-schedule本身是具有选主策略的,所以不用多台机器之间的负载均衡等各种问题,其本身自带类似功能。

kube-apiserver的高可用方案

主要使用了keepalived和Nginx(也可以使用haproxy)。可以使用keepalived配置节点的优先级和检测失活脚本,然后可以给外部一个同一的VIP,并且保证机器肯定能接收到请求,然后配置Nginx可以将请求负载到可用的apiserver上。

使用keepalived、Nginx这种IP漂移、负载均衡的方式比分布式锁服务保持单个leader这种方式可以保持多个实例、性能更高。

其他组件的高可用

除了这个三个主要的之外,我还做了一些例如kube-DNS、CNI插件Calico、Docker镜像仓库的高可用。但是这些都可以是可以基于Kubernetes的副本控制去做的,这里我就只说明一下Kubernetes自身高可用的解决方案,其他就不赘述了。

组件部署的高可用

这里需要综合节点亲和性、webhook等机制实现平台预定的高可用方案。

如果平台高可用方案不合适,各个组件在部署的时候可以设计自己的高可用方案。

参考

Kubernetes APIServer,Etcd,controller manager,scheduler 高可用原理

Kubernetes核心架构与高可用集群详解(含100%部署成功的方案)

标签:az,架构,kubernetes,Kubernetes,可用,集群,Master,kube
From: https://www.cnblogs.com/gavinzlc/p/17349047.html

相关文章

  • 手动恢复_MariaDB_集群
    KEYWORDS:tencent,tstack,solution,HISTORY:Createdat15:26:22on2020-02-15.手动恢复MariaDB集群(TStackK与P版均适用)(2020-02-15)[ERROR]WSREP:bind:Addressalreadyinuse[ERROR]WSREP:failedtoopenglombackendconnection:98:errorwhile......
  • .NET CORE开源 DDD微服务 支持 多租户 单点登录 多级缓存、自动任务、分布式、日志、
    源代码地址https://github.com/junkai-li/NetCoreKevin基于NET6搭建跨平台DDD思想WebApi架构、IDS4单点登录、多缓存、自动任务、分布式、多租户、日志、授权和鉴权、CAP、SignalR、docker部署 如需简约项目可直接去除项目引用解耦设计都可以单独引用架构默认全部引用并启动......
  • redis应用场景及三种集群方式
    1.正文1.redis应用场景2.redis得持久化方式3.redis得集群4.java连接redis服务器2.redis应用场景1、热点数据的缓存----由于redis访问速度块、支持的数据类型比较丰富,所以redis很适合用来存储热点数据,另外结合expire,我们可以设置过期时间然后再进行缓存更新操作,这......
  • 以太网链路聚合与交换机堆叠、集群
    随着业务的发展和园区网络规模的不断扩大,用户对于网络的带宽、可靠性要求越来越高。对于这种情况,传统解决方案通过升级设备方式提高网络带宽,同时通过部署冗余链路并辅以STP协议实现高可靠,然而这种方案存在灵活度低、故障恢复时间长、配置复杂、成本高等缺点。为了解决这些问题,我们......
  • java架构师视频教程
    我真的希望大家能坚持学完我的这套java架构师视频教程,我知道这的确要花费很多的时间和精力,还有大量的练习,我在开始学习的时候也和大家一样的厌倦学习,中途想要放弃。但想想看,既然知道我的这套java架构师的确是非常有效果的,并能改变我们的技术能力,让我们在工作中一生受益,那为什么不......
  • 当⻉借⼒阿⾥云落地云原⽣架构转型,运维降本、效率稳定性双升
    作者:当贝技术团队随着业务飞速发展,当贝的传统IT资产也渐显臃肿,为了避免制约发展的瓶颈,痛定思痛,技术团队果断变革:核心业务云原生化之后,运维效率、整体稳定性和研发效率均得到了全面提升。本文主要简述当贝技术团队云原生之路的背景诉求、落地方法和收获成果。前言当贝成立于2013......
  • 【已结束】直播预告|传统 PvE 游戏 ∕ 开房间 PvP 游戏的云原生架构升级
    OpenKruiseGame(OKG) 是阿里云和国内多家一线游戏头部公司一起孵化的云原生游戏开源项目,旨在将云原生的能力通过OpenKruiseGame更好的传达给游戏服,降低学习成本,提高使用效率,助力游戏基础架构云原生转型。OpenKruiseGame在社区开源半年以来,得到了游戏行业的广泛关注,其游戏服以序......
  • 大数据架构(二)大数据发展史
    1.传统数仓发展史传统数据仓库的发展史这里不展开架构细讲,只需快速过一遍即可。了解这个历史发展过程即可。1.1传统数仓历史1.1.15个时代传统数仓发展史可以称为5个时代的经典论证战。按照两位数据仓库大师Ralphkilmball、BillInnmon在数据仓库建设理念上碰撞阶段来作......
  • 当⻉借⼒阿⾥云落地云原⽣架构转型,运维降本、效率稳定性双升
    作者:当贝技术团队随着业务飞速发展,当贝的传统IT资产也渐显臃肿,为了避免制约发展的瓶颈,痛定思痛,技术团队果断变革:核心业务云原生化之后,运维效率、整体稳定性和研发效率均得到了全面提升。本文主要简述当贝技术团队云原生之路的背景诉求、落地方法和收获成果。前言当贝成立于......
  • mvp架构
    MVPHelper插件的使用(320条消息)MVPHelper更新日志---新增常规分包模式_mvp怎么分包合理_三精-大精wing的博客-CSDN博客实例1.LoginContractor 将三个接口合并为一个publicinterfaceLoginContract{interfaceModel{voidlogin(Stringname,Stringpsw......