javascript
SpringBoot应用和PostgreSQL数据库部署到Kubernetes上的一个例子
創(chuàng)建一個(gè)名為ads-app-service的服務(wù):
上述Service的yaml文件里每個(gè)字段,在Kubernetes的API文檔里有詳細(xì)說明。
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.12/#servicespec-v1-core
如何找到這個(gè)url呢?
Reference->API Reference->v1.12:
比如Service yaml文件里Spec區(qū)域需要出現(xiàn)的字段,每個(gè)字段在幫助文檔里有詳細(xì)說明:
Spec部分的子區(qū)域ports可以定義多個(gè)port,通過符號(hào)"-"代表一個(gè)類似數(shù)組的結(jié)構(gòu):
ports數(shù)組里每個(gè)元素包含的字段:
-
name
-
nodePort
-
port
-
protocol
-
targetPort
用kubectl create -f創(chuàng)建service,因?yàn)轭愋驮O(shè)置為ClusterIP,但沒有指定具體的IP地址,因此創(chuàng)建時(shí)自動(dòng)生成了一個(gè)。
再創(chuàng)建一個(gè)deployment:
這個(gè)deployment使用的image地址如下:
我們還得創(chuàng)建一個(gè)Kubernetes Ingress,yaml文件如下:
需要Ingress的原因是,通常情況下,service和pod的IP只能在Kubernetes集群內(nèi)部訪問。集群外部的請(qǐng)求需要通過負(fù)載均衡轉(zhuǎn)發(fā)到service在Node上暴露的NodePort上,然后再由kube-proxy將其轉(zhuǎn)發(fā)給相關(guān)的
Pod。
Ingress作為Kubernetes里的標(biāo)準(zhǔn)對(duì)象之一,負(fù)責(zé)給service提供集群外部訪問的URL、負(fù)載均衡、SSL終止、HTTP路由等。
下面配置的rule的含義是:每次請(qǐng)求/ads時(shí),請(qǐng)求轉(zhuǎn)發(fā)到服務(wù)ads-app-service上去。
使用host里包含的url拼接上/ads,訪問這個(gè)應(yīng)用:
點(diǎn)擊tile進(jìn)入明細(xì)頁(yè)面:
這個(gè)應(yīng)用的UI顯示用的是SAP UI5框架,后臺(tái)通過一個(gè)SpringBoot應(yīng)用響應(yīng)HTTP請(qǐng)求,數(shù)據(jù)存儲(chǔ)在PostgreSQL里。
進(jìn)入deployment對(duì)應(yīng)的pod,可以查看到j(luò)ava應(yīng)用對(duì)應(yīng)的jar文件和JDK環(huán)境。
要獲取更多Jerry的原創(chuàng)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的SpringBoot应用和PostgreSQL数据库部署到Kubernetes上的一个例子的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 轻薄度被折叠屏手机超越后 直板机的天下要
- 下一篇: 如何使用Kubernetes里的Netw