
#云原生征文# 在 Google Kubernetes上使用 HANA Expression 服务 原创 精华
我们知道,Cluster 是 Google Kubernetes Engine (简称GKE)的基础,代表容器化应用程序的 Kubernetes 对象都在集群之上运行。
Google Kubernetes Engine (GKE) 提供了一个托管环境,开发人员可以使用 Google 基础架构在 GKE 中部署、管理和扩缩容器化应用。GKE 环境包括多个 Compute Engine 实例,这些实例组合在一起就形成了 Google Kubernetes Cluster.
SAP HANA Expression 是 SAP HANA 的简化版本,旨在在笔记本电脑和其他主机(包括云托管的虚拟机)上运行,当然也就支持在本文刚刚描述的 Google Kubernetes Cluster 上运行。这个版本除了支持 SAP HANA传统的内存数据库功能之外,还提供 bring-your-own-language 等多种技术栈,支持微服务、预测分析和机器学习算法,以及用于构建洞察驱动应用程序的地理空间处理等特性。
本文将详细介绍如何在 Google Kubernetes Cluster 上部署并使用 HANA Expression Database Service.
在 Google Cloud Platform 上创建 Google Kubernetes Cluster 实例
登录 Google Cloud Platform 控制台:
点击控制台左上角的 Hamburger 菜单,创建一个新的 Kubernetes Cluster:
维护 Cluster 的名称,选择恰当的版本,点击 Customize 进行定制化:
为 Cluster 指定 CPU 和内存参数,选定 Ubuntu 作为操作系统。Cluster 的尺寸设置为 1.
Cluster 创建完并成功部署后,点击 Connect 按钮进行连接。
连接成功之后,就可以使用 Cloud Shell 操作集群了:
Cloud Shell 提供了命令行的方式同 Cluster 进行交互。
在 Google Kubernetes Cluster 上部署 HANA Expression Database Service
使用以下命令创建一个 secret
以获取 Docker 镜像:
kubectl create secret docker-registry docker-secret --docker-server=https://index.docker.io/v1/ --docker-username=xxx --docker-password=yyyyyy --docker-email=jerry@gmail.com
创建一个 yaml 格式的部署配置文件(Deployment Configuration File), 另存成 hxe.yaml
文件:
这个 yaml 文件里定义了一个 HANA Expression 的 Docker 镜像:store/saplabs/hanaexpress:2.00.030.00.20180403.2
使用如下命令行将这个 Docker 镜像部署到 Kubernetes Cluster 上:
- kubectl create -f hxe.yaml
- kubectl describe pods
等待部署成功结束:
执行命令行 kubectl get pods
,确保 pod 状态为 Running
,然后进入 Pod 容器内部:
kubectl exec -it <<pod-name>> bash
此时就可以使用 SQL 命令行,连接运行在 Pod 里的 HANA Expression 实例了:
hdbsql -i 90 -d systemdb -u SYSTEM -p HXEHana1
给数据库添加 document store
的支持:
alter database HXE add 'docstore';
从 SQLPAD service 获得 external IP 地址:
kubectl get services
有了这个外部可以访问的 IP 地址之后,访问其 3000 端口,就可以在浏览器里登录 SQLPAD 了:
点击 Sign In,创建一个 Administration account.
使用 Connections 菜单,连接 HANA Expression 实例里的数据库表:
从 kubectl get services
命令行结果列表里找到 hxe-connect
,抄下其 External IP 地址:
新建一个数据库连接,维护刚刚抄下来的 External IP 地址,数据库用户名和credentials,Tenant 等登录信息:
数据库连接建立连接之后,就可以新建一个 Query,对其进行读写操作。
创建一个名叫 quotes 的 document store, 并插入一些测试数据:
创建一个 Column 表,开启 Fuzzy Search 的支持:
将插入到 document store collection 的数据拷贝到上面的 Column 表里:
查询与 wait
相似度最低的词:
总结
至此,我们完成了在 Google Kubernetes Cluster 里操作 HANA Expression Database Service 的操作步骤。从整个过程不难感觉出,将包含 HANA Expression 的 Docker 镜像部署在 Google Kubernetes Cluster 并运行在 Pod 内,实现了 HANA Expression 服务的开箱即用,从而避免了 On-Premises 部署模式下 HANA Expression 繁琐的安装和配置步骤。
【本文正在参加云原生有奖征文活动】,活动链接:https://ost.51cto.com/posts/12598
