写点什么

SpringBoot 应用和 PostgreSQL 数据库部署到 Kubernetes 上的一个例子

作者:Jerry Wang
  • 2021 年 12 月 28 日
  • 本文字数:662 字

    阅读完需:约 2 分钟

SpringBoot应用和PostgreSQL数据库部署到Kubernetes上的一个例子

创建一个名为 ads-app-service 的服务:



上述 Service 的 yaml 文件里每个字段,在 Kubernetes 的 API 文档里有详细说明。


https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.12/#servicespec-v1-core


如何找到这个 url 呢?


Reference->API Reference->v1.12:



比如 Service yaml 文件里 Spec 区域需要出现的字段,每个字段在帮助文档里有详细说明:



Spec 部分的子区域 ports 可以定义多个 port,通过符号"-"代表一个类似数组的结构:



ports 数组里每个元素包含的字段:


  • name

  • nodePort

  • port

  • protocol

  • targetPort



用 kubectl create -f 创建 service,因为类型设置为 ClusterIP,但没有指定具体的 IP 地址,因此创建时自动生成了一个。




再创建一个 deployment:



这个 deployment 使用的 image 地址如下:



我们还得创建一个 Kubernetes Ingress,yaml 文件如下:



需要 Ingress 的原因是,通常情况下,service 和 pod 的 IP 只能在 Kubernetes 集群内部访问。集群外部的请求需要通过负载均衡转发到 service 在 Node 上暴露的 NodePort 上,然后再由 kube-proxy 将其转发给相关的


Pod。


Ingress 作为 Kubernetes 里的标准对象之一,负责给 service 提供集群外部访问的 URL、负载均衡、SSL 终止、HTTP 路由等。


下面配置的 rule 的含义是:每次请求/ads 时,请求转发到服务 ads-app-service 上去。



使用 host 里包含的 url 拼接上/ads,访问这个应用:



点击 tile 进入明细页面:



这个应用的 UI 显示用的是 SAP UI5 框架,后台通过一个 SpringBoot 应用响应 HTTP 请求,数据存储在 PostgreSQL 里。




进入 deployment 对应的 pod,可以查看到 java 应用对应的 jar 文件和 JDK 环境。



要获取更多 Jerry 的原创文章,请关注公众号"汪子熙"。

发布于: 刚刚
用户头像

Jerry Wang

关注

个人微信公众号:汪子熙 2017.12.03 加入

SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。

评论

发布
暂无评论
SpringBoot应用和PostgreSQL数据库部署到Kubernetes上的一个例子