# 論文整理:Kubernetes 為基礎之分散式 GPU 雲端計算平台及其智慧養殖 AI 服務 ## 目的 提供一個可靠的智能化箱網養殖 AI 服務,提出一個分散式伺服器架構,能夠將各項服務集中管理,並且能夠迅速的從意外中恢復,同時也能讓開發與線上版本同時進行,降低伺服器管理者的工作,並且能高效率的運作,此外還能夠提供機器學習在訓練階段時需要的運算量的環境。 ## 方法 智能化箱網養殖模式有四個系統,為了能夠集中管理且快速佈署,本文使用K8S,並用docker將應用程式容器化。 ## 流程 1. 應用程式開發。 2. 使用 Docker 將應用程式容器化,封裝成容器映像檔。 3. 將映像檔上傳至本地 Docker Registry。 4. 撰寫組態檔,組態檔內容包含映像檔來源、名稱,及網路設定等等。 5. 在 Kubernetes Cluster 上佈署此組態檔,Kubernetes 會根據組態檔內容去建置 POD。 6. 檢查 POD 是否有正常執行。 ![image](https://hackmd.io/_uploads/Hy4zElGAp.png) ![image](https://hackmd.io/_uploads/SkEmEezCT.png) ## 水下立體影像系統 ![image](https://hackmd.io/_uploads/BJ6ltgGRp.png) 主要透過水下攝影機進行實地拍攝,將拍攝影片串流至雲端運算平台的 Nginx 影像伺服器來轉拋影像,提供給系統內需要此影像的 AI 服務,同時也解決在實地拍攝時沒有固定 IP 的問題。在此系統裡,因為體重的估測是由體長回歸,**所以體長與體重分析為同一個 pod**,**活力分析與數量分析為兩個獨立的 pod**,總共 3 個 pod。 分析完的影像與資料分別會儲存至 NAS 及大數據資料庫。 ## 體長體重分析 比較偏向圖片辨識,沒有深入去讀 ## 水質系統 ![image](https://hackmd.io/_uploads/By32e-MC6.png) 對近海箱網的水質變化情形進行即時監測,得到水質參數包含水溫、水流速及流向、溶氧、和鹽度。當感測器的資料傳輸至雲端運算平台後,會先對其進行 IP 的檢查,只有特定的 IP 可以將資料輸入至資料庫,當 IP 認證成功後會將接收到的資料從 json 格式轉乘陣列後在 mapping 到相對應的欄位。 ## K8s 佈署流程 ![image](https://hackmd.io/_uploads/S1K0hx8R6.png) ![image](https://hackmd.io/_uploads/SJsETgL06.png)