Kubernetes+Docker+Istio 容器云实践(三)

2020 年 2 月 06 日

Kubernetes+Docker+Istio 容器云实践(三)

##接上文


五、Kplcloud platform


5.1 开普勒云平台


开普勒云平台是一个轻量级的 PaaS 平台。


  • 为微服务化的项目提供一个可控的管理平台。

  • 实现每个服务独立部署、维护、扩展。

  • 简化流程,不再需要繁琐的申请流程,最大限度的自动化处理。

  • 实现微服务的快速发布、独立监控、配置。

  • 实现对微服务项目的零侵入式的服务发现、服务网关、链路追踪等功能。

  • 提供配置中心,统一管理配置。

  • 研发、产品、测试、运维甚至是老板都可以自己发布应用。


5.2 在开普勒平台部署服务


为了降低学习成本及部署难度,在开普勒平台上部署应用很简单,只需要增加一个 Dockerfile 就好了。


Dockerfile 参考:


1571209472797023115.jpeg


以上是普通模式,Jenkins 代码 Build 及 Docker build。


1571209521131092825.jpeg


这是一种相对自由的部署方式,可以根据自己的需求进行定制,当然有学习成本。


5.2.1 为什么不自动生成 Dockerfile 呢?


其实完全可以做到自动生成 Dockerfile,但每个服务的要求可能不一样,有些需要增加文件、有些在 Build 时需要增加参数等等。我们不能要求所有的项目都是一样的,这会阻碍技术的发展。所以退而求其次,我们给出模版,研发根据自己的需求调整。


5.3 工具整合


  • 开普勒云平台整合了 gitlab,Jenkins,repo,k8s,istio,promtheus,email,WeChat 等API。

  • 实现对服务的整个生命周期的管理。

  • 提供服务管理、创建、发布、版本、监控、报警、日志已及一些周边附加功能,消息中心、配置中心、还能登陆到容器,服务下线等等。

  • 可对服务进行一健调整服务模式、服务类型、一键扩容伸缩,回滚服务API管理以及存储的管理等操作。


5.4 发布流程


1571209533061062658.jpeg


用户把自己的 Dockerfile 跟代码提交到 Gitlab,然后在开普勒云平台填写一些参数创建自己的应用。


应用创建完后会在 Jenkins 创建一个 Job,把代码拉取下来并执行 Docker build(如果没有选择多阶构建会先执行 go build 或 mvn),再把打包好的 Docker image 推送到镜像仓库,最后回调平台 API 或调用 k8s 通知拉取最新的版本。


用户只需要在开普勒云平台上管理好自己的应用就可以,其他的全部自动化处理。


5.5 从创建一个服务开始


我们从创建一个服务开始介绍平台。


平台主界面:


1571209547841058411.jpeg


点击“创建服务”后进入创建页面。


填写基本信息:


1571209559822027655.jpeg


填写详细信息:


1571209569872093908.jpeg


基本信息以 Golang 为例,当选择其他语言时所需填写的参数会略有不同。


如果选择了对外提供服务的话,会进入第三步,第三步是填写路由规则,如没有特殊需求直接默认提交就行了。


5.5.1 服务详情


1571209583732036810.jpeg


1571209600142060832.jpeg


Build 升级应用版本:


1571209619222016669.jpeg


调用服务模式,可以在普通跟服务网格之间调整。


1571209631902005060.jpeg


服务是否提供对外服务的能力:


1571209646812049263.jpeg


扩容调整 CPU、内存:


1571209658173009693.jpeg


调整启动的 Pod 数量:


1571209672292086340.jpeg


网页版本的终端:


1571209755055004594.jpeg


5.5.2 定时任务


1571209765245065095.jpeg


5.5.3 持久化存储


1571209789235021519.jpeg


1571209805425071729.jpeg


1571209823528085917.jpeg


管理员创建 StorageClass 跟 PersistentVolumeClaim,用户只需要在自己服务选择相关的 PVC 进行绑写就行了。


存储使用的是 NFS。


5.5.4 Tracing


1571209840209077637.jpeg


1571209863439066168.jpeg


5.5.5 Consul


1571209878349082409.jpeg


Consul 当作配置中心来使用,并且我们提供 Golang 的客户端。


$ go get github.com/lattecake/consul-kv-client  
复制代码


它会自动同步 consul 的目录配置存在内存,获取配置只需要直接从内存拿就行了。


5.5.6 Repository


1571209899259008249.jpeg



本文转载自宜信技术学院公众号。


原文链接:http://college.creditease.cn/detail/309


2020 年 2 月 06 日 21:28245

评论

发布
暂无评论
发现更多内容

TypeScript | 第二章:类、接口和之间的关系

梁龙先森

typescript 前端 七日更

Reactive Spring实战 -- 理解Reactor的设计与实现

binecy

reactor Reactive SpringBoot 2

OPPO小布助手正在改变普罗米修斯的世界

脑极体

GitHub上3天1W赞的程序员学习路线!入门进阶都非常实用

Java架构之路

Java 程序员 架构 面试 编程语言

云服务的可服务性经典6问

华为云开发者社区

服务 计算

2020,谁是中国ToB行业最有影响力的企业?

ToB行业头条

神比喻:低代码开发像自动驾驶汽车,零代码开发像无人驾驶汽车!

低代码指南

程序员 软件 开发者 低代码 开发工具

【Java入门】流

HQ数字卡

Java 七日更

阿里架构师478页Java工程师面试知识解析笔记pdf,一份2021年通往阿里的面试指南

Java架构之路

Java 程序员 架构 面试 编程语言

大连市税务局局长赵福增:用区块链打破部门间“信息孤岛”

CECBC区块链专委会

区块链 汽车

大众汽车“芯片荒”,折射汽车芯片的漫漫“自主替代”路

脑极体

MSHA x Chaos 容灾高可用实践

阿里巴巴云原生

数据库 高可用 云原生 中间件 容灾

PostgreSQL:您可能需要增加MAX_LOCKS_PER_TRANSACTION

PostgreSQLChina

数据库 postgresql 开源

图解HTTP权威指南(一)| HTTP报文

李先生

运维 HTTP

volatile,synchronized可见性,有序性,原子性代码证明(基础硬核)

叫练

volatile 多线程 synchronized 原子性 指令

由于不知线程池的bug,某Java程序员叕被祭天

Java架构师迁哥

比特币10年:从2个披萨涨到2万美金,背后的三个“神秘人”

CECBC区块链专委会

比特币

大作业1

追风

架构师一期

测开之函数进阶· 第2篇《纯函数》

清菡

测试开发

学透这份300页的2020最新java面试题及答案,一线大厂offer随便拿

Java架构之路

Java 程序员 架构 面试 编程语言

距离 Java 开发者玩转 Serverless,到底还有多远?

阿里巴巴云原生

Java Serverless 微服务 云原生 中间件

脑洞:如何用一个整数来表示一个列表?

Python猫

Python

Redis实战丨阿里架构师耗时三年写出的Redis实战文档PDF

Java成神之路

Java 程序员 架构 面试 编程语言

架构师训练营W10作业

Geek_f06ede

LeetCode题解:55. 跳跃游戏,贪心,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

量化交易系统开发搭建案例

薇電13242772558

区块链 策略模式

“区块链+社会治理”模式获居民点赞

CECBC区块链专委会

区块链 区块链投票

英特尔宋继强:迈向可持续的千倍速计算未来

intel001

13W字!腾讯高工手写“Netty速成手册”,3天能走向实战

周老师

Java 编程 程序员 架构 面试

倍频程与钢琴调式的距离

阿里云视频云

音频技术 音频

阿里开发10年,全部心血汇聚成到这份文档里,拿到30W的offer没问题

Java架构之路

Java 程序员 架构 面试 编程语言

Kubernetes+Docker+Istio 容器云实践(三)-InfoQ