尝试使用由Nutanix提供的Karbon平台服务,体验多云PaaS平台-后篇
首先
简要概述
Nutanix在2020年9月发布了Karbon Platform Services(KPS)。这是基于Kubernetes的多云PaaS解决方案。请参阅以下新闻稿和产品介绍。
官方新闻稿
Karbon Platform Services产品介绍页面
在本文中
根据前一阶段的服务域建设,我们将继续进行后一阶段的构建,即构建示例应用程序。请根据此Github存储库的指南进行操作。
应用程序设计
我們來介紹一下即將部署的應用程式WoodKraft。我們將專注在常見的電子商務網站上。我們已經實現了基於使用者在網站上的行為來進行推薦的功能。
以下是主要的组件:
WordPress:作为创建电子商务网站的基础内容管理系统(CMS)。
MySQL:作为WordPress后端使用的数据库。
Debezium:追踪对数据库的更改并创建Kafka主题。
Kafka:用于向推荐服务等业务逻辑传递数据流。
推荐逻辑:接收数据流并更新最受欢迎的产品页面。
评论逻辑:接收数据流并更新评论页面。
Ingress Controller:用于控制来自服务域外的流量。
Istio:用于控制微服务之间的通信。
Prometheus:用于监控和警报应用程序和服务。
Grafana:可视化由Prometheus获取的数据。
日志转发:将日志数据发送到外部。

请注意:本指南为简化起见,将所有服务统一集成到一个清单(Kubernetes Yaml或Helm图表)中提供。在生产环境中,我们将每个服务都放入CI/CD流水线中,并通过API调用仅部署经过批准的服务。
建造过程
项目设置
该项目将在KPS上将Kubernetes应用程序和其他服务进行逻辑分离,只允许授权用户查看和编辑。这样可以在不同的开发项目之间共享服务领域,并可以在共同的控制平面上管理多个项目。这里我们将为示例应用程序创建一个新项目。
1-1. 登录 KPS。
请点击此处,使用我的Nutanix帐户登录。
1-2. 切换到项目界面
请点击左侧导航栏中的”Projects”菜单。
1-3. 创建新项目




2. 应用程序的部署
在本章中,我们将使用Helm Charts,在KPS上的Kubernetes App(CaaS)功能中部署Wordpress、Debezium、Prometheus和MySQL等应用程序的组件。
2-1. 下载Helm图表。
我們將從這裡下載 Helm 圖表。
2-2. 移动到项目背景

2-3. 创建 Kubernetes 应用程序






2-4. 检查Traefik/Istio/Kafka的状态
这个示例应用程序中调用和使用了Traefik/Istio/Kafka的平台服务,我们需要确认它们的状态。



获取服务指标
下一步,我们将使用另一个Helm图表来启动名为Grafana的各种度量可视化服务。Grafana与Prometheus等各种数据源进行协作,并提供图表、警报、可定制的仪表板和分析等功能。
3-1. 下载 Helm Chart
从这里下载Helm图表。
创作Kubernetes App。
按照2-2,2-3的步骤,从Helm Chart创建一个Kubernetes App。将Kubernetes App的名称命名为”woodkraft-monitoring”。这次部署将在大约5分钟内完成。

3-3. 检查Traefik的状态

3-4. 准备访问应用程序。
Traefik 使用 Ingress 规则定义了对两个 URL 的访问:https://woodkraft.karbon.nutanix.com 和 https://grafana.woodkraft.karbon.nutanix.com。在生产环境中,我们将在 DNS 服务中注册记录,以便组织内部和全球范围内的访问。但是,本次我们为了测试目的,在主机的 hosts 文件中添加了记录。
苹果操作系统/ Linux操作系统
echo "(サービスドメインのIPアドレス) woodkraft.karbon.nutanix.com" | sudo tee -a /etc/hosts
echo "(サービスドメインのIPアドレス) grafana.woodkraft.karbon.nutanix.com" | sudo tee -a /etc/hosts
Windows – 窗户 hù)
Note: This translation refers to “windows” as in the openings in a building for ventilation, rather than the operating system.
echo (サービスドメインのIPアドレス) woodkraft.karbon.nutanix.com >> %WINDIR%\System32\Drivers\Etc\Hosts
echo (サービスドメインのIPアドレス) grafana.woodkraft.karbon.nutanix.com >> %WINDIR%\System32\Drivers\Etc\Hosts
3-5. 进入WoodKraft应用程序

3-6. 访问Grafana


4. 微服务的更新
我们将在最新的Helm图表上更新已经部署的微服务“推荐服务”。在KPS中实施的Istio具有流量管理、安全连接、策略执行、可观测性等各种功能,但在这里我们将使用流量管理功能来实现针对特定微服务的渐进式发布策略,而不是一次性对其进行全面更新。具体而言,当从Firefox浏览器访问时,使用新版本;其他情况下使用旧版本。
4-1. 下载 Helm Chart。
我們將從這裡下載Helm圖表。
4-2. 创建Kubernetes应用程序
使用与2-2、2-3相同的步骤,从Helm图表创建Kubernetes应用程序。将Kubernetes应用程序的名称设为”woodkraft-updates”。这次部署将在大约5分钟内完成。

4-3. 请确认Istio的状态。
从左侧导航栏中点击”Istio”,然后再点击”Virtual Services”选项卡。

4-4. 进入推荐服务
从Firefox和其他浏览器访问https://woodkraft.karbon.nutanix.com/recommendations。


我确认根据Istio中Virtual Service的设置,服务的路由目的地会根据浏览器而变化。
总结
本次介绍了使用Karbon平台服务(KPS)来构建服务域、部署示例微服务、监控服务和更新的流程。虽然本次只涉及了通用PaaS功能,但是IoT/AI应用场景是KPS的专长领域,因此数据管道、FaaS和AI功能将在其他机会中进行介绍。