1. 程式人生 > >SpringBoot應用和PostgreSQL資料庫部署到Kubernetes上的一個例子

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