2018-04-09 容器服务管理平台调研(一)


背景

公司的核心产品,服务的数量太多(30+,40+),每次部署都需要花费相当长的时间,部署脚本使用起来也很是不爽。所以期望打造一个基于 Docker + Kubernetes 的容器服务管理平台,能够达到快速部署、服务管理、服务监控、CICD等目的。

业内解决方案

自从2015年 Docker 流行之后,基于容器化的服务开发开始风靡起来,在阿里云、腾讯云、华为云这样的大公司介入之前,行业内有以下几个公司专攻这个领域 - CaaS (Container as a Service):

他们之间的比较,可以参考知乎回答:

而这些产品,包括阿里云等大公司的产品,大都是基于 Kubernetes 或者 Swarm 开发的。

Kubernetes Git 地址:https://github.com/kubernetes/kubernetes

下面将首先介绍时速云

时速云

总览

“总览”涵盖了整个“空间”的状态,包括账户信息、应用、服务、容器、存储、数据库与缓存、健康状况、今日该区域记录、镜像仓库、CI/CD、编排概况、今日该空间记录、审计日志、告警。


总览1.png

总览2.png

应用管理

三种创建应用的方式,镜像仓库、应用商店、编排文件,最终都将生成一个Yaml格式的编排文件。
对于一个应用,除了启动、停止、刷新、删除、重新部署外,还需要能够查看该应用,包括查看运行状态、编排文件、审计日志、监控、租赁信息、创建时间、更新时间、描述、地址(url + port)
样例:

kind: Service
apiVersion: v1
metadata:
  name: test
  labels:
    name: test
  annotations:
    tenxcloud.com/schemaPortname: 'test-1/TCP,test-2/TCP'
spec:
  ports:
    - name: test-1
      protocol: TCP
      targetPort: 9200
      port: 9200
    - name: test-2
      protocol: TCP
      targetPort: 9300
      port: 9300
  selector:
    name: test
  externalIPs:
    - 11.11.1.1
---
kind: Deployment
apiVersion: v1
metadata:
  name: test
  labels:
    name: test
spec:
  replicas: 1
  selector:
    matchLabels:
      name: test
  template:
    metadata:
      labels:
        name: test
    spec:
      containers:
        - name: test
          image: 'index.tenxcloud.com/tenxcloud/elasticsearch:latest'
          ports:
            - containerPort: 9200
              protocol: TCP
            - containerPort: 9300
              protocol: TCP
          env:
            - name: PATH
              value: >-
                /usr/share/elasticsearch/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
            - name: LANG
              value: C.UTF-8
            - name: JAVA_VERSION
              value: 8u66
            - name: JAVA_DEBIAN_VERSION
              value: 8u66-b17-1~bpo8+1
            - name: CA_CERTIFICATES_JAVA_VERSION
              value: '20140324'
            - name: ELASTICSEARCH_MAJOR
              value: '2.0'
            - name: ELASTICSEARCH_VERSION
              value: 2.0.0
            - name: ELASTICSEARCH_REPO_BASE
              value: 'http://packages.elasticsearch.org/elasticsearch/2.x/debian'
          resources:
            limits:
              memory: 512Mi
            requests:
              memory: 512Mi
          args:
            - elasticsearch
          command:
            - /docker-entrypoint.sh
          imagePullPolicy: Always
          volumeMounts:
            - name: volume-1
              mountPath: /usr/share/elasticsearch/data
              readOnly: false
      volumes:
        - name: volume-1
          rbd:
            image: test-storage
            fsType: ext4

交付中心

镜像仓库、应用商店、编排文件

  1. 镜像仓库包括私有空间、公有空间、我的收藏、添加第三方、上传镜像、下载镜像
  2. 应用商店包含了一些常用的应用,如Jenkins、Gitlab、Java开发环境等,本质上是Yaml格式的编排文件
  3. 编排文件可以创建编排,也可以查看公共编排,并直接部署

时速云编排文件支持原生 Kubernetes 的资源定义方式,并支持服务的编排部署,从而帮助开发者和运维人员创建并管理新一代的基于容器技术的微服务架构应用。其中包括:
[1] Pod 编排(容器组),适用于紧耦合的服务组,保证一组服务始终部署在同一节点,并可以共享网络空间和存储卷
[2] Stack 编排,支持跨物理节点的 Pod 之间通过 API 进行网络通信。并定义服务之间的依赖关系
以上两种编排均支持 yaml 文件描述,定义服务之间的关系,定制各个服务的属性,并一键部署运行

CI / CD

  1. 代码仓库
  2. TenxFlow
    类似Jenkins里的pipeline

TenxFlow流程定义:这里可以定义一个TenxFlow项目的执行流程,每个卡片对应一个子项目,分别执行镜像构建、代码编译、单元测试或者集成测试等子任务,大部分流程以生成应用镜像作为结束。

  1. Dockerfile

云端Dockerfile: 这里保存您在TenxFlow过程中创建的云端Dockerfile,方便再次查看或使用。(这里以使用Dockerfile,对应TenxFlow子项目名称作为识别标识)

数据库与缓存

数据库 -> MySQL集群
缓存 -> Redis

集成中心

vmware 的 vSphere
ceph存储总览应用

管理与日志

操作审计
日志查询

账户中心

我的账户
我的团队(需要升级到专业版,¥99/月)
充值/续费
消费记录
充值记录
开放API
版本

小结

  1. 创建应用的时候,也会创建一个服务
  2. 启动该应用,服务也会是启动状态,同时启动了一个容器
  3. 容器可以做“重新分配”操作,相当于重启该应用和该服务
  4. 应用可以是有状态的,并把数据挂载在一个存储空间上
  5. 服务配置有配置组的概念,也可以关联到应用上
  6. 创建一个应用,要做到的配置包括:
    • 服务名称、镜像地址、镜像版本

    • 基本配置:内核、内存、挂载存储、实例数量


      应用的配置信息1.png
    • 辅助设置:进入点(entrypoint)、启动命令、时区设置、拉取镜像是否用本地缓存

    • 高可用:设置检查项目,如果检查项目不满足条件,将自动重启服务


      应用的配置信息2.png
    • 配置管理:将服务配置组里预先设置好的配置挂载到某个目录下


      应用的配置信息3.png
    • 高级设置:环境变量 + 映射端口


      应用的配置信息4.png
  7. 存储空间会管理到应用上,在应用被删除前、或者应用解关联该存储空间之前,不能删除存储空间
  8. 专业版可以支持更多的镜像仓库(2个 -> 20个),没有限制的TenxFlow,更多的数据库与缓存(2个 -> 8个),时间更久的日志查询(1天 -> 1年),团队管理
  9. 这是公有云解决方案,不适合我们

参考文档

  1. http://docs.tenxcloud.com/
  2. http://docs.tenxcloud.com/quick-start
  3. https://api-doc.tenxcloud.com/

本系列的其他文章:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容

  • [TOC] Docker容器平台选型调研 编排选型 Swarm Swarm可以从一个Dockerfile来构建镜像...
    AllenWu阅读 2,504评论 0 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,579评论 18 139
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,505评论 15 147
  • 宴希,大家都知道生鲜 电商这条路走起来非常的艰辛!为何我会在这条路上持续的做了一年!在做生鲜之前宴希单位上过班!也...
    宴希阅读 260评论 0 0
  • 习题1:词的共时研究 第一章 词的形态构成 重点提示:词的定义,语素定义与分类,语素变体 难点提示:词的同一性问题...
    火鱼鳗酥阅读 3,129评论 0 1