高可靠设计,Etcd 集群,Kubernetes 三主节点,保证集群的高可用性。

基于 GlusterFS /nfs集群,在生产环境和非生产环境下提供存储卷服务。
Flannel+VXLAN,提供可靠的网络服务。
提供分布式监控和统一日志中心,全方位的应用监管能力。
支持 Redis/ZooKeeper 等常用中间件的集群编排方案。
通用组件服务,提供快速构建企业级应用的能力。
在该架构中,我们可以将其分为四层,如下:
 
用户层:即普通用户。
服务访问层:基于gorouter和haproxy服务发现、负载均衡和路由分发等。
应用中间件层:提供基于redis/zk等常见中间件给业务使用。
业务应用层:即基于Kubernetes平台构建和运行企业业务应用,如CI/CD持续集成、微服务项目、监控告警和日志管理、私有镜像仓库等服务。
基础设施层:即laas层支撑的由Kubernetes容器管理平台和GlusterFS数据持久化存储等系统组成的基础平台。
 
 
基础设施层
Kubernetes平台
部署管理:Kubernetes平台都是在阿里云云、和各自私有云之上自己建设维护的。
网络通信:在容器和容器之间、容器和主机网络方面,可以使用Calico或Flannel等方案,我们使用的Flannel。
HA高可用:Kubernetes节点分为Master和Node两种类型节点,前者负责运行集群相关的控制管理服务,而后者负责运行Pod容器。在多Node节点模式下,由于Kubernetes Pod具有天然的容灾冗余HA高可用实现,因此,我们并不需要关心Node节点的HA高可用,而只需关心Master节点的HA即可,Master节点的HA高可用,通过多Master节点+nginx方案实现。从Kubernetes 1.12版本起,kube-proxy服务默认使用ipvs实现,取消了之前的iptables。这有助于提升K8s大规模集群环境下的性能和稳定性。
Docker和操作系统优化:在生产环境中,Docker和操作系统版本应当使用较新的release版本。并且,主机操作系统应当做一定程度的优化配置。
GlusterFS/NFS数据存储
Kubernetes平台的数据持久化存储,可以使用GlusterFS、NFS等存储方案。其中,GlusterFS适用于有其技术背景或大容量存储需求的公司;而NFS适用于存储容量需求相对较小,无专业存储技术背景的公司。
 
业务应用层
镜像管理:使用Harbor私有镜像仓库服务。
日志管理:使用Elasticsearch、Filebeat + 自研界面。
监控告警管理:使用open-falcon +自研、也使用了Prometheus + 自研等技术栈。
微服务架构:使用Service Mesh服务网格中的Istio方案,主要是灰度发布方面。
Devops:自研流水线集成pass平台;
应用类型:无状态类服务使用deployment,有状态类服务则使用Statefulset,pass使用helm。
规划好Namespace:根据项目-环境指定namespace,统一管理诸如监控告警和日志管理方面的pod、service、pvc等资源。这样,可以较为方便的管理和区分K8s上的各种应用。
应用中间件层
对于有状态应用,线上环境只上了redis,zk,mq等等常见中间件,由于数据库需要较强的稳定性和可靠性,暂时未使用。
 
中间件上容器后,在pass上即可进行增删,便于服务管理维护,也避免了应用交付周期变长。
 
服务访问层
中间件上容器便于维护扩容管理。
整个数据流走向如下图,负载均衡和路由规则、域名分发使用gorouter和haproxy实现,gorouter简单说就是一个路由器,haproxy是负载均衡。此外,gorouter和haproxy实现HA高可用,可以想象在K8s集群中,大量的出入口流量都进过gorouter和haproxy,其负载是非常大的,其重要程度不言而喻,因此实现HA就非常重要。我们一般部署至少在2个节点以上。
 

k8s的paas平台的更多相关文章

  1. 移动App开发需要更多的PaaS平台而不是IaaS

    时代的变迁,创业的大潮,越来越多的人关注了有点开发,越来越多的人了解了互联网服务术语:PaaS.IaaS.SaaS.BaaS等.今天大家在开发App的时候这么多复杂的云服务如何来选择呢? IaaS服务 ...

  2. Windows Azure Cloud Service (39) 如何将现有Web应用迁移到Azure PaaS平台

    <Windows Azure Platform 系列文章目录> 本文将简单介绍,如何将企业内现有的ASP.NET应用程序迁移到Azure PaaS平台. 因为在迁移过程中,可能需要对现有的 ...

  3. PAAS平台构建7×24小时高可用应用的方案设计

    本博客迁移到部署在jae上的独立博客系统wordpress,博客地址:点击打开独立博客.欢迎大家一起来讨论IT技术. 现在很多企业都在搭建自己的私有PAAS平台,当然也有很多大型互联网公司搭建共有PA ...

  4. PAAS平台的web应用性能测试与分析

    引言 为什么我会写这一篇博客,因为最近很多京东云擎jae的用户反应一个问题就是他们部署在jae上面的应用访问很慢,有极少数应用甚至经常出现504超时现象,当然大家首先想到的是jae性能太差,这也是人之 ...

  5. 云计算PAAS平台测试设计之镜像管理

    下面是云计算PAAS平台页面概览: 今天我们要讲的是镜像管理页面的测试设计: 可以看到,这个页面主要有增删改查四个功能. 1. 查询镜像 (1)易用性:查看镜像查询界面,界面上各组件设计合理.美观.易 ...

  6. 搜狐云景paas平台实践之路

    前言: 搜狐云景作为搜狐的paas平台,在2014年5月22日的云计算大会上正式发布了公测.初测,注册用户必须先申请邀请码参与公测会赠送用户100元电子券,经过实名认证之后会再赠送100电子券,目测可 ...

  7. PAAS平台7&#215;24小时可用性应用设计

    如今非常多企业都在搭建自己的私有PAAS平台,当然也有非常多大型互联网公司搭建共同拥有PAAS平台(比如SAE/BAE/JAE(jae.jd.com)).那么使用PAAS平台来部署SAAS应用有哪些优 ...

  8. PaaS平台的尴尬与变革

    当今时代只要提到云计算这个词语,一定会提到云计算分为IaaS.PaaS.SaaS 这三个层面,现阶段云环境中IaaS和SaaS都实现了商品化.但是,PaaS作为云计算的服务模式之一,既不像IaaS那样 ...

  9. 企业级分布式应用服务EDAS _Dubbo商业版_微服务PaaS平台 【EDAS Serverless 运维 创业】

    企业级分布式应用服务EDAS _Dubbo商业版_微服务PaaS平台_分布式框架 - 阿里云https://www.aliyun.com/product/edas?source_type=yqzb_e ...

随机推荐

  1. VueX(vue状态管理)简单小实例

    VueX:状态管理 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 核心模块:State. ...

  2. Eclipse下Maven安装和配置

    1. 下载 Maven 在百度输入 Maven 搜索 ,找到它的官网(http://maven.apache.org/),点击进入下载页面. 下载页面地址: http://maven.apache.o ...

  3. mac tar 解压

    1.下载mac上对应rar版本 http://www.rarlab.com/download.htm2.利用tar名解压下载的rarosx-5.4.0.tar.gz,版本可能会更新tar xzvf a ...

  4. windows添加“以管理员身份运行”

    方法: 新建一个txt文件,命名为"admin.txt",记得打开"显示后缀名",要求看到.txt并可修改之. 将下列代码粘贴进去. Windows Regis ...

  5. Spring初解

    1,关于spring容器: spring容器是Spring的核心,该 容器负责管理spring中的java组件, ApplicationContext ctx  = new ClassPathXmlA ...

  6. 深入理解Flink核心技术及原理

    前言 Apache Flink(下简称Flink)项目是大数据处理领域最近冉冉升起的一颗新星,其不同于其他大数据项目的诸多特性吸引了越来越多人的关注.本文将深入分析Flink的一些关键技术与特性,希望 ...

  7. PAT(A) 1144 The Missing Number(C)统计

    题目链接:1144 The Missing Number (20 point(s)) Description Given N integers, you are supposed to find th ...

  8. 机器学习-HMM隐马尔可夫模型-笔记

    HMM定义 1)隐马尔科夫模型 (HMM, Hidden Markov Model) 可用标注问题,在语音识别. NLP .生物信息.模式识别等领域被实践证明是有效的算法. 2)HMM 是关于时序的概 ...

  9. pb笔记之数据窗口设置操作

    1 使DataWindow列只能追加不能修改如何使DataWindow中的数据只能追加新记录而不能修改,利用 Column 的 Protect 属性可以很方便的做到这一点,方法如下:将每一列的 Pro ...

  10. VMWare linux虚拟机(centos没有GUI)联网(NAT模式)

    使用yum list命令查看是否能连上网. 不能联网,需要对centos进行网络配置.但在此之前,需要: 1. 虚拟机网络连接方式设置成NAT. 2. window系统下的两个服务VMwareDHCP ...