首页 > 其他分享 >Rancher 全球化部署最佳实践

Rancher 全球化部署最佳实践

时间:2022-11-21 15:31:08浏览次数:93  
标签:容器 全球化 Kubernetes 部署 最佳 集群 Rancher NeuVector

作者

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

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

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

  • 需要经验丰富的 IT 人员对 Kubernetes 集群进行部署、升级、监控, 确保系统可靠性。
  • 多个 Kubernetes 集群如何进行统一策略管理、安全管控,实现集中式的可视化管控和一致性运维 ?
  • 如何利用 Kubernetes 和周边生态技术栈,更高效地迭代和交付业务应用 ?

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

多集群统一纳管

Rancher 全球化部署最佳实践_K8s

业务出海需要重点评估平滑迁移成本。容器是非常好的应用载体,诸多企业考虑在海外公有云使用 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 全球化部署最佳实践_K8s_02

使用 Rancher 部署 EKS 集群示例

AWS 配置:

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

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

Rancher 全球化部署最佳实践_Kubernetes_03

3、创建用户关联此策略

Rancher 全球化部署最佳实践_Kubernetes_04

Rancher 全球化部署最佳实践_Kubernetes_05

Rancher 配置

1、创建集群

Rancher 全球化部署最佳实践_K8s_06

2、选择 EKS

Rancher 全球化部署最佳实践_Rancher_07

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

Rancher 全球化部署最佳实践_Rancher_08

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

Rancher 全球化部署最佳实践_K8s_09

4、配置 VPC 和子网

Rancher 全球化部署最佳实践_Kubernetes_10

5、配置节点主机规格

6、集群创建完成

Rancher 全球化部署最佳实践_Kubernetes_11

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

Rancher 全球化部署最佳实践_K8s_12

多集群统一发布

跨集群应用克隆

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

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

Rancher 全球化部署最佳实践_Rancher_13

Rancher 全球化部署最佳实践_Rancher_14

Gitops 统一发布

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

Rancher 全球化部署最佳实践_Rancher_15

Rancher 全球化部署最佳实践_K8s_16

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

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

Rancher 全球化部署最佳实践_Rancher_17

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

Rancher 全球化部署最佳实践_Rancher_18

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

Rancher 全球化部署最佳实践_K8s_19

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

Rancher 全球化部署最佳实践_K8s_20

多集群监控

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

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

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

Rancher 全球化部署最佳实践_Kubernetes_21

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

Rancher 全球化部署最佳实践_K8s_22

安全

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

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

Rancher 全球化部署最佳实践_Kubernetes_23

审计日志

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

Rancher 全球化部署最佳实践_Rancher_24

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

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

Rancher 全球化部署最佳实践_Kubernetes_25

1、准入策略控制

进入NeuVector进行配置

Rancher 全球化部署最佳实践_K8s_26

Rancher 全球化部署最佳实践_K8s_27

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

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

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

3、网络动态微隔离

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

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

  • 学习模式:学习和记录容器、主机间网络连接情况和进程执行信息。自动构建网络规则白名单,保护应用网络正常行为。为每个服务的容器中运行的进程设定安全基线,并创建进程配置文件规则白名单。
  • 监控模式:NeuVector 监视容器和主机的网络和进程运行情况,遇到非学习模式下记录的行为将在 NeuVector 中进行告警。监控模式不会消耗资源。
  • 保护模式:NeuVector 监视容器和主机的网络和进程运行情况,遇到非学习模式下记录的行为直接拒绝。保护模式是直接拒绝非白名单的访问请求,执行器需要 CPU 和内存通过深度数据包检查来过滤连接,进行判断处理,所以会消耗更多的 CPU 资源。

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

总结

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

标签:容器,全球化,Kubernetes,部署,最佳,集群,Rancher,NeuVector
From: https://blog.51cto.com/u_12462495/5873719

相关文章

  • 基于Feign远程调用、自定义Feign配置、性能优化及最佳实践
    目录​​一、基于Feign远程调用​​​​定义和使用Feign客户端​​​​二、自定义Feign的配置​​​​配置Feign日志的两种方式​​​​方式一:配置文件方式​​​​方式二:Ja......
  • MYSQL性能优化的最佳20+条经验
    MYSQL性能优化的最佳20+条经验 2009年11月27日  陈皓 评论 169条评论  251,274人阅读今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其......
  • 2022 年恶意软件趋势与安全最佳实践
    “即使拥有最好的安全产品,也不意味着100%受到保护。”CheckPoint恶意软件研究和保护团队负责人科比.艾森卡夫日前在接受采访时表示。这是一位拥有十多年经验的网络安全......
  • 【API设计与开发实践】第2篇 Restful API 设计最佳实践的四个重要改进
    RestfulAPI设计最佳实践已经被讨论过多次,其中命名规则有共识也有差异。从函数实现的角度出发,基于简单、明确的原则,在考虑对接RPCAPI的情况下,可以发现一些冲突和理解上......
  • React-hooks+TypeScript最佳实战
    ReactHooks什么是HooksReact一直都提倡使用函数组件,但是有时候需要使用state或者其他一些功能时,只能使用类组件,因为函数组件没有实例,没有生命周期函数,只有类组件才......
  • RocketMQ 重试机制详解及最佳实践
    作者:斜阳引言本文主要介绍在使用RocketMQ时为什么需要重试与兜底机制,生产者与消费者触发重试的条件和具体行为,如何在RocketMQ中合理使用重试机制,帮助构建弹性,高可用......
  • 灵雀云ACP 斩获“2022金边奖-最佳云原生边缘云平台”
    近日,由边缘计算社区主办的全球边缘计算大会·上海站成功召开,灵雀云凭借出色的全栈云原生技术实力、专业的高品质服务以及在边缘云场景的丰富落地实践,斩获“2022金边奖-最佳......
  • Rancher建立的K8S集群重置
    筆者的整套架K8S集群是通過racher建立的,rancher版本為2.5.14,目前还是测试阶段,因为种种异常,整套架构都面临重建,但是之前我的master节点已经安装过集群,要彻底清理环境,否则会报......
  • React-Hook最佳实践
    ReactHook新出现背景类组件的问题复用组件状态难,高阶组件+渲染属性providerscustomers,等一堆工具都是为了解决这个问题,但是造成了很严重的理解成本和组件嵌套地狱......
  • 121. 买卖股票的最佳时机 ----- 动态规划、历史最小一次遍历
    给定一个数组prices,它的第 i个元素 prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计......