概述#

要在本機練習 Kubernetes(K8s),可以選擇 Minikube、Kind、k3s 等工具,但對 macOS 使用者而言,最快速的方式還是直接啟用 Docker Desktop 內建的 Kubernetes。本章使用此方式建立本地叢集,作為後續章節的操作環境。

Kubernetes 的版本與 API 變動相當頻繁,幾乎每三個月就會有一次小更新。網路上的教學若版本落差太大,常常會無法直接套用。原文以 Docker Desktop 4.8.1(K8s v1.24.0)的 macOS 環境為例。

安裝 Docker Desktop(macOS)#

  1. 至 Docker 官方文件下載 macOS 版本的 Docker Desktop。
  2. 將下載的 docker.dmg 檔拖曳到 Applications 資料夾。
  3. 開啟 docker.app,看到主介面即代表安裝成功。

啟用內建 Kubernetes#

  1. 打開 Docker Desktop,從右上角進入 Settings。
  2. 切換到 Kubernetes 分頁,勾選「Enable Kubernetes」。
  3. 按下「Apply & Restart」。Docker Desktop 會下載 Kubernetes 相關的容器映像並啟動本地叢集,這個過程需要等待一段時間。
  4. 安裝完成後,畫面下方的 Kubernetes 狀態燈會轉為綠色,相關容器也會在 Docker Desktop 上正常執行。

驗證 Kubernetes 是否就緒#

啟用完成後,可以使用 kubectl 指令確認叢集狀態。

取得叢集資訊#

kubectl cluster-info

此指令會列出 Control Plane 與 CoreDNS 的服務位置,能確認 API Server 已可被連線。

查看節點(Node)#

kubectl get nodes

在 Docker Desktop 啟用的本機叢集中,預期會看到一個名為 docker-desktop 的節點,狀態為 Ready

查看版本#

kubectl version --short

範例輸出:

Flag --short has been deprecated, and will be removed in the future. The --short output will become the default.
Client Version: v1.24.3
Kustomize Version: v4.5.4
Server Version: v1.24.0

Client Version 是本機 kubectl 的版本,Server Version 則是 Docker Desktop 中 K8s 控制平面的版本。兩者建議不要差距太大,避免遇到 API 不相容問題。

安裝過程的常見狀況#

  • Kubernetes 一直在 Starting:通常是映像還在下載中,需要一段時間,可以先確認網路狀態。
  • 拉取映像很慢:可能與網路環境有關,必要時可考慮設定 Docker Hub 的映像來源或使用其他來源。
  • kubectl 找不到指令:Docker Desktop 啟用 Kubernetes 後會在 PATH 加入 kubectl,若仍無法執行,可嘗試重啟終端機或重新開機。

為什麼需要 Kubernetes#

僅僅靠容器並不足以支撐生產環境。一個典型的後端系統可能用上多種語言、多種資料庫,還要面對水平擴展、自動恢復、主從分離、滾動更新等議題。把這些操作全部塞到 Docker 指令或維運腳本中並不可行,而 Kubernetes 提供的就是這層更上位的容器管理平台。

從本章開始,後續會逐步進入實作環節:先準備好可視化的 Dashboard,再實際建立 Pod、Service、Deployment 等基礎物件。

原文出處#

  • GitHub:https://github.com/MikeHsu0618/2022-ithelp/tree/main/Day4
  • iThome:https://ithelp.ithome.com.tw/articles/10287787