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 的原创文章,请关注公众号"汪子熙"。
版权声明: 本文为 InfoQ 作者【Jerry Wang】的原创文章。
原文链接:【http://xie.infoq.cn/article/0176d063d0794c73386ddaf43】。文章转载请联系作者。
评论