Rancher 全球化部署最佳实践

news2024/11/16 7:52:57

作者
万绍远,CNCF 基金会官方认证 Kubernetes CKA&CKS 工程师,云原生解决方案架构师。对 ceph、Openstack、Kubernetes、prometheus 技术和其他云原生相关技术有较深入的研究。参与设计并实施过多个金融、保险、制造业等多个行业 IaaS 和 PaaS 平台设计和应用云原生改造指导。

“大航海”时代,国内企业纷纷在出海赛道上扬帆起航。伴随着业务出海,系统也要做全球化部署,公有云成为了出海企业的首选。

但是,Kubernetes 在企业落地过程中仍然面临诸多挑战:

  • 需要经验丰富的 IT 人员对 Kubernetes 集群进行部署、升级、监控, 确保系统可靠性。

  • 多个 Kubernetes 集群如何进行统一策略管理、安全管控,实现集中式的可视化管控和一致性运维 ?

  • 如何利用 Kubernetes 和周边生态技术栈,更高效地迭代和交付业务应用 ?

Rancher 就是一款很好的工具,能够通过其多集群管理能力和 Kubernetes 生命周期安全支持,帮助出海业务提高部署效率,降低运维成本。

多集群统一纳管

业务出海需要重点评估平滑迁移成本。容器是非常好的应用载体,诸多企业考虑在海外公有云使用 Kubernetes。那么应该选择公有云的虚拟机自建 Kubernetes?还是直接使用公有云厂商的 Kubernetes 发行版,例如 AWS EKS 或者 Azure AKS 呢?

建议企业使用公有云的 Kubernetes 发行版,因为它直接与公有云的基础设施进行了集成,可以更好地利用云上资源,提高部署效率,降低运维成本。以 AWS EKS 为例,使用 EKS 创建 Loadblance 类型的 Service 会自动在 AWS 中创建 ELB 负载均衡器,存储自动对接了 EBS 和 EFS。相比自建 Kubernetes 来说,降低了手动对接的操作过程。

Rancher 支持国内外主流的公有云 Kubernetes 发行版,如 EKS、GKE、ACK、CCE、TKE、AKS……用户可通过 Rancher 一键创建并纳管这些云供应商的 Kubernetes 发行版。

以一个客户架构为例

1、在中国本地数据中心部署 Rancher,本地数据中心的 Kubernetes 使用 RKE 进行部署,并同时建设同城灾备环境。

2、海外业务集群使用 Rancher 对接 AWS,创建对应的 EKS 集群进行统一纳管,通过专线连接。

使用 Rancher 部署 EKS 集群示例

AWS 配置:

1、在 AWS 中提前创建 VPC 和安全组

2、添加 IAM 权限,创建策略:https://docs.ranchermanager.rancher.io/zh/reference-guides/amazon-eks-permissions/minimum-eks-permissions

3、创建用户关联此策略

Rancher 配置

1、创建集群

2、选择 EKS

3、选择对应的区域和配置信息

填写生成的账户 Access-key 和 Secret-key

4、配置 VPC 和子网

5、配置节点主机规格

6、集群创建完成

对应的 AWS 页面也能看见创建的集群。在 Rancher UI 创建负载均衡和创建 PVC 也会自动在 AWS 中创建

多集群统一发布

跨集群应用克隆

当实现多集群纳管后也带来一个问题:用户在测试集群部署服务验证可用以后,如何快速地将应用直接发布到生产集群?如果只能在生产集群中手动创建应用,在手动配置过程中容易出现参数丢失等问题。

为了解决这些问题,Rancher 企业版从设计之初就新增了跨集群应用克隆的功能,可以一键将某一集群的应用发布到其他集群,减少用户手动配置的工作量。 同时用户还可以通过跨集群应用克隆功能,提前将应用备份到其他集群,一旦有集群崩溃的情况出现,可以马上切换流量到其他集群提供服务,快速实现应用的恢复。


Gitops 统一发布

同时 Rancher 也内置了 Gitops 工具 Fleet,实现海量集群同步分发


  • 将应用代码和构建 Docker 镜像的 Dockerfile 文件放置到 Gitlab 对应项目中
  • 在 Gitlab 中创建用于专门用于存放部署 yaml 的项目
  • 配置 CI 工具用于代码编译镜像构建和业务 yaml 文件修改
  • 配置 Rancher-Fleet 检测存放部署 yaml 的项目,有更新后自动部署到对应环境中

点击持续交付功能创建 Fleet 规则

配置对接 git 仓库存放应用部署 yaml 的路径

可以选择部署到全部集群还是指定集群,或通过标签灵活定义的集群组中

完成后可以看见应用部署的状态,后续也会实时检测 git 仓库中的变化,进行自动部署

多集群监控

每个集群可以部署独立的 Prometheus,对单独集群进行监控,可支持对容器云平台以下维度的监控:

  • 集群总体资源使用情况
  • 节点资源使用情况
  • 组件性能监控
  • 应用容器 POD 资源使用监控

但在多集群场景下,单独集群监控需要一个一个点进去,并且人工分析数据,更大的作用是故障后的问题排查,并不能很好地提前发现问题。更好的处理方式是将纳管的全部集群监控数据进行汇总和分析展示。如:内存、CPU、网络流量最高的 top 10(集群、主机、POD);重启次数最多的 top 10 POD;全部集群 Error 事件统一展示;以便更好地帮助平台运维提前发现风险点。

全局监控主要通过 Thanos 实现,会在每个集群的 Prometheus 上通过 Thanos sidecar。对于单个集群的短期数据,Prometheus 通过 local-pv 存储到本地磁盘;而长期数据则通过 Thanos-sidecar 存储到 s3 协议的对象存储中。

安全

随着 Kubernetes 在业务中的广泛使用,容器安全问题正逐步受到重视。容器云平台的安全涉及到镜像安全、集群安全以及容器运行时安全,同时也涉及到租户网络隔离、用户及用户权限控制。Rancher 集成了容器安全平台 SUSE NeuVector,可以更好地保护用户的平台安全。

NeuVector 本身也支持多集群管理、策略统一下发和规则统一管理。

审计日志

为了满足我国本土用户需求,Rancher 企业版在 UI上集成了多维度审计日志展示功能(什么人在什么时间操作了什么资源对象,结果是什么)。通过审计日志,平台管理员可以快速查看到平台的操作记录,方便进行审计。

准入策略控制及网络微隔离

SUSE NeuVector 是业界首个 100% 开源的零信任容器安全平台,在 Rancher 新版本中已经进行了集成,可直接部署使用。NeuVector 可实现以下功能

1、准入策略控制

进入NeuVector进行配置


2、在准入控制菜单添加以下策略

由于容器运行期间会共享宿主机的内核、存储和端口,所以在实际生产环境中,误操作或平台被入侵将影响宿主机上其他应用 Pod 的正常运行,因此需要针对集群进行 Pod 的安全策略控制,以此来保证主机安全。

  • 禁止使用特权容器
  • 禁止从父进程获取更多权限
  • 限制使用主机 IPC
  • 限制只能只读根文件系统
  • 限制 HostPath 路径
  • 限制 HostPort 使用范围

3、网络动态微隔离

集群内 POD 间需要进行网络微隔离,提高安全性,避免 POD 被入侵后互相影响。NeuVector 将每个 workload 识别为一个组,通过对组进行策略控制,并且每个组默认会自动学习对应的网络连接规则和启动进程,并生成白名单。

NeuVector 的组支持 3 种模式:学习模式、监控模式和保护模式。各个模式实现作用如下。

  • 学习模式:学习和记录容器、主机间网络连接情况和进程执行信息。自动构建网络规则白名单,保护应用网络正常行为。为每个服务的容器中运行的进程设定安全基线,并创建进程配置文件规则白名单。

  • 监控模式:NeuVector 监视容器和主机的网络和进程运行情况,遇到非学习模式下记录的行为将在 NeuVector 中进行告警。监控模式不会消耗资源。

  • 保护模式:NeuVector 监视容器和主机的网络和进程运行情况,遇到非学习模式下记录的行为直接拒绝。保护模式是直接拒绝非白名单的访问请求,执行器需要 CPU 和内存通过深度数据包检查来过滤连接,进行判断处理,所以会消耗更多的 CPU 资源。

新建的容器业务自动发现后默认为学习模式,也可以通过设置将默认模式设置为监控模式或保护模式。

总结

总之,Rancher 的多集群管理能力(多集群管理、多集群应用统一发布、多集群监控)和 Kubernetes 生命周期安全支持可以帮助企业提升部署效率,降低运维成本,是出海企业进行全球化部署的明智选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/23017.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

美欧之后,台湾地区推出芯片法案:搞研发、买设备最高抵减50%税额

前言 在全球科技博弈加剧的背景下,芯片作为资本与技术双密集型产业,在全球产业链的重要地位已经不言而喻。 今年以来,欧洲、美国、日本、韩国、印度等国家/地区陆续出台了扶持半导体产业发展的法案,以加强本土半导体实力。而台湾…

肝不完这份HTTP八股文的你,再强大也是假的

关于网络模型 OSI 网络模型 应用层,给用户提供应用功能;表示层,负责把数据转换成兼容另一个系统能识别的格式;会话层,负责建立、维持、同步会话;传输层,负责端到端的数据传输;网络…

创新型中小企业认定

目前申报省级专精特新之前需要先认定创新型中小企业。创新型中小企业需要满足哪些条件才能进行认定呢?下面我就来详细的介绍一下: 一、评价方式: 由企业按属地原则自愿登录培育平台参与自评,省级中小企业主管部门根据评价标准&a…

目标检测算法——YOLOv5/YOLOv7改进之结合​ASPP(空洞空间卷积池化金字塔)

>>>深度学习Tricks&#xff0c;第一时间送达<<< 目录 一、前沿介绍 1.空洞卷积&#xff08;Atrous Convolution&#xff09; 2.空洞空间卷积池化金字塔&#xff08;Atrous Spatial Pyramid Pooling&#xff09; 二、YOLOv5/YOLOv7改进之结合​​ASPP 1.…

CANoe-Ethernet IG和Ethernet Packet Builder的使用和区别

Ethernet IG和Ethernet Packet Builder都是CANoe仿真以太网报文发送的模块,但是在用途上各有不同 1. Ethernet IG 以太网IG模块允许用户以多种方式发送以太网帧、UDP报文和TCP报文。可以发送一次,也可以按照指定的周期时间循环发送 创建以太网IG的步骤如下: 在Simulation …

2.5A强驱动能力,舞台灯光驱动TMI8263锻造“中国芯”

舞台艺术&#xff0c;自古以来就是人们享受生活不可或缺的艺术形式&#xff0c;一段赏心悦目的舞台表演能为观众带来从视听感官到心灵的艺术洗礼。 现在的舞台艺术&#xff0c;越来越追求极致的视觉效果&#xff0c;舞台灯光起着非常关键的作用。 一场舞台表演&#xff0c;需要…

Linux 之 Linux/Ubuntu 中开发操作中常用的命令整理

Linux 之 Linux/Ubuntu 中开发操作中常用的命令整理 目录 Linux 之 Linux/Ubuntu 中开发操作中常用的命令整理 一、简单介绍 二、常用命令 1、 打开终端 &#xff1a;Ctrl Alt T 2、退出终端&#xff1a;exit 3、查看安装 Ubuntu 版本/显示系统等信息&#xff1a;uname…

豆瓣评分9.0,《Java核心技术与面试》神作,已帮助1374人拿到Offer

Java的知识点实在太多&#xff0c;如果什么都去学&#xff0c;而不是精学工作和面试中常用的知识点&#xff0c;那不仅会造成学习效率低下&#xff0c;而且会让大家迷失在海量的知识中。结果是&#xff0c;大家投入了大量时间&#xff0c;也学了不少知识点&#xff0c;但是无法…

汇编逆向-入门

Qt源码解析 索引 汇编逆向— 授权破解示例分析 问题模拟 运行环境 x64dbgWindows 10serial.exe 运行效果 输入注册信息不对提示错误。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tV3bdLGO-1669017713175)(D:\Work\Code\luxiang\CSDN\ASM-…

element 表格字段过长

element 表格 - 表头太长换行 解决方案一&#xff1a;show-overflow-tooltip Table表格&#xff0c;如果每列显示的内容过长则可以使用该属性&#xff0c;即 :show-overflow-tooltip“true”&#xff0c;该属性可以让内容在一行显示&#xff0c;如果显示不下时&#xff0c;显示…

智能晾衣架(一)--设计

本文素材来源于红河学院 工学院 作者&#xff1a;赵德森 张艺锦 潘志慧 曹紫康 指导老师&#xff1a;江洁 张龙超 一、简介 本作品设计的晾衣系统从人们日常生活研究设计&#xff0c;体积小&#xff0c;收纳方便&#xff0c;不占空间可以在日常生活中极大的便利用户。我们…

MyBatis 源码分析之 Select 语句执行(上)

三哥 内容来自【自学星球】 欢迎大家来了解我的星球&#xff0c;和星主&#xff08;也就是我&#xff09;一起学习 Java &#xff0c;深入 Java 体系中的所有技术。我给自己定的时间是一年&#xff0c;无论结果如何&#xff0c;必定能给星球中的各位带来点东西。 想要了解更多&…

盘点敏捷项目失败的6个主要原因

敏捷项目管理及其相关的方法和价值观正在迅速改变着许多企业的运作方式。改善灵活性、提高协作和生产力以及加强客户联系的承诺&#xff0c;敏捷的种种好处摆在企业决策者面前。 然而&#xff0c;直接运行成功的敏捷项目并不是必然的。是什么原因导致敏捷管理失败&#xff1f…

公众号免费调用题库

公众号免费调用题库 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&#xff08;点击…

Reading Note(8) ——GNN for DSE

这篇博客是一篇论文阅读札记&#xff0c;这篇论文的主题是使用GNN来优化加速器设计中的设计空间探索耗时过长的问题。 这篇文章的标题是《Enabling Automated FPGA Accelerator Optimization Using Graph Neural Networks》&#xff0c;值得注意的是这是它的预印版&#xff0c…

Java-内部类

内部类的概念 认识内部类 一个类的内部又完整的嵌套了另一个类结构。被嵌套的类称之为内部类inner class&#xff0c;嵌套该内部类的类称为外部类。就像双重for循环&#xff0c;外部for循环里面包含着另一个内层循环。内部类是类的第5大成员&#xff0c;[属性&#xff0c;方法…

让我们进入面向对象的世界(一)

让我们进入面向对象的世界 文章目录让我们进入面向对象的世界开场白一.面向对象概述二.认识对象和类2.1什么是类2.2 什么是对象呢&#xff1f;2.3 让我们来创建第一个对象2.3 让我们进一步了解&#xff0c;我们针对对象的操作&#xff0c;是怎样的开场白 大家好&#xff01;&a…

SpringMVC请求、响应与异步请求

文章目录SpringMVC核心架构的具体流程步骤一、SpringMVC请求与响应1、SpringMVC Handle原理与应用1.1 概念1.2 Spring MVC Handler的三种写法2、SpringMVC 视图解析器2.1 概念2.2 配置视图解析器二、SpringMVC异步请求1、 Ajax基本配置2、 异步与同步优缺点&#xff1a;如何设置…

基于TMI8421的3D打印机步进电机解决方案

打印机一直是工作中不可缺少的一部分&#xff0c;当下&#xff0c;随着3D打印技术的推广&#xff0c;3D打印机逐渐进入我们的生活与工作当中。每个人都期望可以在办公室环境下安静快速的打印&#xff0c;更高效地完成每项打印工作&#xff1b;更生动逼真的重现理想的3D模型。而…

实战:如何优雅地扩展Log4j配置?

前言 Log4j 日志框架我们经常会使用到&#xff0c;最近&#xff0c;我就遇到了一个与日志配置相关的问题。简单来说&#xff0c;就是在原来日志配置的基础上&#xff0c;指定类的日志打印到指定的日志文件中。 这样讲述可能不是那么好理解&#xff0c;且听我从需求来源讲起。…