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

阅读数:2 2020 年 2 月 6 日 21:28

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

##接上文

五、Kplcloud platform

5.1 开普勒云平台

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

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

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

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

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

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

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

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

开普勒 logo.jpg

5.2 在开普勒平台部署服务

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

Dockerfile 参考:

WechatIMG323.jpeg

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

WechatIMG324.jpeg

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

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

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

5.3 工具整合

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

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

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

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

5.4 发布流程

WechatIMG325.jpeg

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

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

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

5.5 从创建一个服务开始

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

平台主界面:

WechatIMG326.jpeg

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

填写基本信息:

WechatIMG327.jpeg

填写详细信息:

WechatIMG328.jpeg

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

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

5.5.1 服务详情

WechatIMG329.jpeg

WechatIMG330.jpeg

Build 升级应用版本:

WechatIMG331.jpeg

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

WechatIMG332.jpeg

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

WechatIMG333.jpeg

扩容调整 CPU、内存:

WechatIMG334.jpeg

调整启动的 Pod 数量:

WechatIMG335.jpeg

网页版本的终端:

WechatIMG336.jpeg

5.5.2 定时任务

WechatIMG337.jpeg

WechatIMG338.jpeg

5.5.3 持久化存储

WechatIMG339.jpeg

WechatIMG340.jpeg

WechatIMG341.jpeg

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

存储使用的是 NFS。

5.5.4 Tracing

WechatIMG342.jpeg

WechatIMG343.jpeg

WechatIMG344.jpeg

5.5.5 Consul

WechatIMG345.jpeg

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

$ go get github.com/lattecake/consul-kv-client  

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

5.5.6 Repository

WechatIMG346.jpeg

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

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

评论

发布