作者
万绍远,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.r…
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 生命周期平安反对能够帮忙企业晋升部署效率,升高运维老本,是出海企业进行全球化部署的理智抉择。