初入江湖(K8S)

先決條件

在開始之前,請確保您的系統上已安裝 Docker 和 Docker Compose,並且將Docker Desktop 開啟 Kubernetes。

啟用指南參考官網:前往

啟用kubernetes
確認啟用狀態

在開始練習之前,我們應該對 Docker 和 Kubernetes 有一定的基本概念,否則會感到困惑。我自己也還有一些細節需要釐清,這就是我們需要深入了解的地方。教學相長,讓我們一同學習!

這次的測試內容為一個最基本的系統架構,包括:

  1. MySQL

  2. Spring Boot

這是最基礎、最簡單、也是最常見的架構之一。先不包含網管部分的架構,因為我認為這不應該是後端工程師必須具備的技能,不過你若對這方面有需求,網路上有很多資源可以參考。

廢話不多說,上扣!

步驟清單

  1. 建立 MySQL 服務

  2. 確認 MySQL 服務狀況與連線設定

  3. 打包專案

  4. 撰寫 Dockerfile 建立專案 image

  5. Image push 到 Docker Hub(可選)

  6. 建立 Spring Boot 服務

  7. 進行測試

步驟一 至 二:建立 MySQL 服務

以下是一個建立 MySQL 服務的範例,主要包含了建立持久儲存空間、對外曝露的 Service Node 以及建立 MySQL 服務的三個步驟。

檔案名稱:CreateMySQLV2.yml

部署指令:

在執行專案打包前,我們需要確認 MySQL 的內部 IP,可以使用以下指令:

確認可以連線後,可以手動建立資料或在測試專案的 \resources\db\migration\init.sql 中有 SQL 可以執行。

確認 MySQL 對外 IP 與 Port
Test connection

步驟三 至 五:Build image

  1. 將 MySQL 曝露的 IP 與 Port 寫入 YAML 檔案

  2. Package、Build Image,將 Image Push 到 Docker Hub(非必要)

步驟六:Deploy

這是一個簡易的部署 Spring Boot 的範例。在將服務部署在 Kubernetes 上,需要做以下事項:

  1. 如果有設定 imagePullPolicy: Never 則不需將 Image Push 到 Docker Hub

  2. 執行 Kubernetes 部署指令

檔案名稱:CreateNormalV2.yml

部署指令:

步驟七:Testing

進行測試,並查看結果。

參考與附件

結語

這次的實戰範例以 Docker 和 Kubernetes 為基礎,展示了建立一個基本系統架構的步驟。透過實際的操作,我們深入了解了如何建立 MySQL 服務和 Spring Boot 服務,以及在 Kubernetes 上的部署過程。

在這個過程中,我們學到了以下重點:

  1. 基本概念的重要性:在開始之前,對 Docker 和 Kubernetes 有一定的基本觀念是至關重要的,否則可能會感到困惑。

  2. 系統架構的基礎:範例中使用了最基本且最常見的系統架構,包括 MySQL 和 Spring Boot。這是一個適合初學者入門的例子。

  3. Kubernetes 實戰:通過實際操作,我們學到了如何在 Kubernetes 上建立服務,包括 YAML 檔案的編寫、部署指令的執行等。

最後,這個實戰範例為我們提供了實際的練習機會,強調了基本觀念的重要性,同時也激發了我們對於 Docker 和 Kubernetes 更深入學習的動力。在未來的學習過程中,我們可以進一步挑戰更複雜的系統架構,不斷精進自己的技能。教學相長,讓我們共同進步!

Last updated