Skip to main content

moregeek program

rancher 全球化部署最佳实践_rancher labs的博客-多极客编程

作者

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

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

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

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

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

多集群统一纳管

Rancher 全球化部署最佳实践_Rancher

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

使用 Rancher 部署 EKS 集群示例

AWS 配置:

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

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

Rancher 全球化部署最佳实践_K8s_03

3、创建用户关联此策略

Rancher 全球化部署最佳实践_Rancher_04

Rancher 全球化部署最佳实践_Rancher_05

Rancher 配置

1、创建集群

Rancher 全球化部署最佳实践_Rancher_06

2、选择 EKS

Rancher 全球化部署最佳实践_Rancher_07

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

Rancher 全球化部署最佳实践_Kubernetes_08

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

Rancher 全球化部署最佳实践_K8s_09

4、配置 VPC 和子网

Rancher 全球化部署最佳实践_Rancher_10

5、配置节点主机规格

6、集群创建完成

Rancher 全球化部署最佳实践_Rancher_11

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

Rancher 全球化部署最佳实践_Kubernetes_12

多集群统一发布

跨集群应用克隆

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

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

Rancher 全球化部署最佳实践_Rancher_13

Rancher 全球化部署最佳实践_Kubernetes_14

Gitops 统一发布

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

Rancher 全球化部署最佳实践_Kubernetes_15

Rancher 全球化部署最佳实践_Rancher_16

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

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

Rancher 全球化部署最佳实践_K8s_17

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

Rancher 全球化部署最佳实践_K8s_18

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

Rancher 全球化部署最佳实践_Kubernetes_19

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

Rancher 全球化部署最佳实践_Rancher_20

多集群监控

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

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

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

Rancher 全球化部署最佳实践_K8s_21

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

Rancher 全球化部署最佳实践_Kubernetes_22

安全

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

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

Rancher 全球化部署最佳实践_Kubernetes_23

审计日志

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

Rancher 全球化部署最佳实践_K8s_24

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

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

Rancher 全球化部署最佳实践_Rancher_25

1、准入策略控制

进入NeuVector进行配置

Rancher 全球化部署最佳实践_K8s_26

Rancher 全球化部署最佳实践_Kubernetes_27

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

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

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

3、网络动态微隔离

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

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

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

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

总结

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

©著作权归作者所有:来自51CTO博客作者RancherLabs的原创作品,请联系作者获取转载授权,否则将追究法律责任

docker部署flink备忘_github.com/zq2599的博客-多极客编程

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文目的是给自己备忘的,在后面的工作和学习中若想快速搭建Flink环境用于开发,可以照此进行; 版本 操作系统:群晖DS218+(DSM 6.2.2-24922 Update 4) docker:18.09 docerk-compose:1.2

uos本地源配置_影玺阁的博客-多极客编程

创建iso挂载点:root@Ispsrv:~# mkdir /mnt/uos配置永久挂载:root@Ispsrv:~# vi /etc/fstab #添加内容/dev/cdrom /mnt/uos iso9660 defaults 0 0挂载全部:root@Ispsrv:~# mount -amount: /mnt/uos: WARNING: device write-protected, mou

helm部署的服务如何修改配置_github.com/zq2599的博客-多极客编程

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于helm部署服务 在Kubernetes上进行容器化部署时,使用helm可以简化操作,以部署Jenkins为例,只需要以下命令即可完成部署: helm install --namespace helm-jenkins --name my-je

基于harbor搭建企业镜像仓库_运维老兵alex的博客-多极客编程

虽然Docker官方提供了Docker Hub作为公共的Registry服务器,给到用户进行镜像的保存和管理工作。但对于企业而言,考虑到安全性和网络效率等原因,通常会搭建私有的Registry服务器,用于提供企业内部的镜像仓库服务。本文将基于开源的Harbor项目来介绍关于私有仓库的搭建。​一. Harbor介绍Harbor是由VMware公司中国团队开发的一个企业级Registry项目,可用于搭

tob应用私有化交付发展历程、技术对比和选型_rainbond的博客-多极客编程

由于数据隐私和网络安全的考虑,大多数toB场景的客户需要私有化应用交付,也就是需要交付到客户的环境里,这样的客户有政府、金融、军工、公安、大型企业、特色行业等,这些私有化场景限制很多,如何提高私有化应用交付的效率是个难题,本文将介绍,私有化应用交付有哪些技术?他们都各自有什么特点?私有化应用交付的发展历程。 toB应用私有化交付的困难点 环境网络限制,影响交付效率 交付实施过程中不能方便查找资料

想搞懂持续交付理论和实践,你只差这三个问题_华为云开发者社区的博客-多极客编程

摘要:今天,我们来了解下什么是“持续交付”及“持续交付”的实践。云原生是当下IT圈非常热门的一个词,其目的是为了各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生包含很多技术,比如容器、微服务、DevOps、持续交付等,今天,我们来了解下什么是“持续交付”及“持续交付”的实践。什么是持续交付持续交付是指,所有开发人员都在主干上进行小批量工作,或者在短时间存在的特性分

深入浅出学习透析nginx服务器的基本原理和配置指南「负载均衡篇」_李博alex的博客-多极客编程

负载均衡之前的章节内容中【深入浅出学习透析Nginx服务器的基本原理和配置指南「初级实践篇 」】和 【深入浅出学习透析Nginx服务器的基本原理和配置指南「进阶实践篇」】,我们采用的代理仅仅指向一个服务器。但是网站在实际运营过程中,大部分都是以集群的方式运行,这时需要使用负载均衡来分流。Nginx也可以实现简单的负载均衡功能。Nginx作为HTTP负载均衡器Nginx是以高并发和内存占用少出名,它

如何召回流失用户_枫叶飘飘的博客-多极客编程

对于负责用户运营的人员,用户流失是一个必须要关注的问题。如果没有及时发现用户流失的原因,及时采取相对应的策略进行干预和挽留,最终到了流失的末期,那么整个产品可能会宣告死亡。那什么是用户流失呢?我们先从用户的活跃、沉默、唤醒说起。用户的活跃、沉默、唤醒是客观存在的,但流失是主观定义的。 活跃:一段时间内的用户活跃次数,比如日活、周活、月活。沉默:一段时间内用户活跃次数为0,比如沉默一周、沉默30天。

dm8数据库模式对象管理_qq604ad839511ed的博客-多极客编程

管理模式 模式与用户之间的关系: 模式定义:模式是一个特定的对象集合,在概念上可将其看作是包含表、视图、索引等若干 对象的对象集 模式对象: 表、视图、约束、索引、序列、触发器、存储过程/函数、包、同 义词、类、域 模式与用户之间的关系: 当系统建立一个用户时,会自动生成一个同名的模式 用户还可以建立其他模式,DM 中用户和模式是一对多的关系,一个用户可以拥有多个模式, 一个模式仅能归属于一个用户

深入浅出学习透析nginx服务器的基本原理和配置指南「https安全控制篇」_李博alex的博客-多极客编程

Https反向代理之前的内容中我们主要针对于一些对安全性要求比较高的站点,可能会使用HTTPS(一种使用SSL通信标准的安全HTTP协议),针对于HTTP 协议和SSL标准相信大家都知道了,在这里我就不为大家进行介绍了,如果需要了解,大家可以查看一下相关的资料哈,但是对于使用Nginx配置https需要了解一下基础内容的。生产环境一般都是购买的商业版SSL证书,本文主要是将自己配置Nginx  h

剖析一下"抢茅台"脚本底层逻辑_京东云官方的博客-多极客编程

本文作者:梁冬冬前言: 今天你撸茅台了么👇? 撸茅台已经成为社会现象🙌,茶余饭后讨论的最佳实践😇2022年双十一大促已经完美收官,兄弟姐妹克服种种困难与挑战.. 备战的会议室忙碌中带着紧张,当峰值过后的喜悦不言而喻,今年备战室里听着对面的兄弟讲述了他抢茅台的经过,以及对马上来临的整点茅台活动期待,我也立马参与进去,但是....没抢到😭, 带着种种的疑问,百度了下网上抢茅台的种种手段与方法,发现里面

#littlefs原理分析#[五]文件读写_鸿蒙社区的博客-多极客编程

作者:蒋卫峰 李涛 前言 上一篇文章介绍了littlefs中的目录操作,这一篇文章则将介绍littlefs中的文件读写操作。 本文会根据文件的存储类型进行介绍,即inline文件和outline文件,其读写过程也有差别。另外还会介绍inline文件到outline文件的转换,以及littlefs底层的读写API。 1. inline文件读写 因为inline文件数据存储于其父目录的元数据中,inl