Skip to content

Kind

Docker 容器內的輕量級 Kubernetes

軟體分類 程式開發 / 基礎設施
軟體標籤
Audacity影音women樂器編曲Plane
開發廠商 The Kubernetes Authors (SIG Testing)
Stars
15.1k
Forks
1.7k
License
APACHE LICENSE 2.0
Version
v0.31.0
Update
2026-03-02
OS

產品說明

Kind (Kubernetes in Docker) 是一套使用 Docker 容器作為「節點 (Node)」來運行本地 Kubernetes 叢集的工具。它的誕生初衷是為了測試 Kubernetes 本身,但由於其極致的輕量化與快速啟動特性,現已成為開發者在本地端進行 K8s 開發、或在 CI/CD 流程中進行整合測試的首選方案。

與 Minikube 相比,Kind 不需要依賴重型的虛擬機 (VM),而是巧妙地利用 Docker 容器來模擬控制平面 (Control Plane) 與工作節點 (Worker Node)。這意味著只要你的電腦能跑 Docker,就能在幾秒鐘內啟動一個標準的、通過 CNCF 認證的 Kubernetes 叢集。它支援多節點 (Multi-node) 架構與高可用性 (HA) 設定,並且支援將本地編譯的 Docker Image 直接載入叢集,無需推送到遠端 Registry,大幅加速開發迴圈。

核心特色:

  • 極速啟動:利用容器技術,通常能在 30 秒至 1 分鐘內完成叢集初始化。
  • 低資源消耗:相較於 VM 方案,記憶體與 CPU 的開銷更低。
  • CI/CD 友善:設計上易於整合至 GitHub Actions、GitLab CI 等自動化流程中。
  • 本地映像檔載入:支援 kind load docker-image 指令,直接將本地 Image 注入叢集,省去 Push/Pull 的時間。

常用指令

Kind 是一款純命令列工具 (CLI),操作邏輯簡單直觀。

叢集生命週期管理

# 建立一個預設名稱為 "kind" 的叢集
kind create cluster

# 建立一個指定名稱的叢集 (例如 my-cluster)
kind create cluster --name my-cluster

# 刪除預設叢集
kind delete cluster
指令功能說明範例
create cluster建立叢集啟動一個新的 K8s 環境
delete cluster刪除叢集移除叢集並清理相關 Docker 容器
get clusters列出叢集顯示目前已建立的所有 Kind 叢集名稱
get nodes列出節點顯示叢集內的容器節點資訊
load docker-image載入映像檔將本地 Docker Image 載入至 Kind 節點中
export kubeconfig匯出設定匯出 Kubeconfig 以供 kubectl 使用

進階技巧

  • 多節點叢集配置
    透過一份簡單的 YAML 設定檔,即可模擬真實的多節點環境(例如 1 個 Master + 2 個 Worker)。

    config.yaml:

    kind: Cluster
    apiVersion: kind.x-k8s.io/v1alpha4
    nodes:
    - role: control-plane
    - role: worker
    - role: worker
    

    執行指令:

    kind create cluster --config config.yaml
    
  • 載入本地 Image
    開發時最常用的功能。當你在本地 docker build 好了一個 Image 後,不需要 Push 到 Docker Hub,直接載入即可:

    docker build -t my-app:latest .
    kind load docker-image my-app:latest
    
  • Ingress 支援
    Kind 支援透過 extraPortMappings 將容器內的 Ingress Controller Port 對應到本機,讓你能在瀏覽器中直接存取叢集內的服務。


操作介面

Kind 本身是 CLI 工具,執行過程會顯示清晰的進度與檢查項目。下圖展示了建立叢集時的終端機畫面。