SpringBoot應用和PostgreSQL數據庫部署到Kubernetes上的一個例子

建立一個名爲ads-app-service的服務:java

上述Service的yaml文件裏每一個字段,在Kubernetes的API文檔裏有詳細說明。node

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

如何找到這個url呢?數組

Reference->API Reference->v1.12:app

好比Service yaml文件裏Spec區域須要出現的字段,每一個字段在幫助文檔裏有詳細說明:負載均衡

Spec部分的子區域ports能夠定義多個port,經過符號"-"表明一個相似數組的結構:框架

ports數組裏每一個元素包含的字段:url

  • name對象

  • nodePortblog

  • 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的原創文章,請關注公衆號"汪子熙":

相關文章
相關標籤/搜索