Ubuntu安裝Minikube (2025)

在現代容器化開發環境中,Minikube 是學習和測試 Kubernetes 的絕佳工具。本文將詳細介紹如何在 Ubuntu 24.04.3 LTS 上完整建置 Minikube 環境,包含 Docker 容器引擎、kubectl 命令列工具,以及完整的 Tomcat 服務部署範例。

無論您是 Kubernetes 初學者還是需要本地開發環境的工程師,這篇指南都將協助您快速建立一個功能完整的本地 Kubernetes 集群。

環境需求

  • 作業系統: Ubuntu 24.04.3 LTS
  • 記憶體: 建議至少 4GB RAM
  • 硬碟空間: 建議至少 20GB 可用空間
  • 網路: 可存取網際網路進行套件下載

第一步:系統前置準備

在開始安裝之前,我們需要更新系統套件並安裝必要的基礎工具。這些工具將為後續的 Docker 和 Kubernetes 組件安裝提供支援。

1
2
3
4
5
6
7
8
9
10
11
# 更新系統套件資料庫並升級現有套件
sudo apt update && sudo apt upgrade -y

# 安裝必要的基礎工具
# curl: 用於下載檔案
# wget: 另一個下載工具
# apt-transport-https: 支援 HTTPS 來源
# ca-certificates: 憑證管理
# software-properties-common: 軟體來源管理
# conntrack: Kubernetes 網路追蹤所需
sudo apt install -y curl wget apt-transport-https ca-certificates software-properties-common conntrack

第二步:安裝 Docker 容器引擎

Docker 是 Minikube 的容器運行時環境。Minikube 支援多種容器引擎,但 Docker 是最常用且穩定的選擇。

1
2
3
4
5
6
7
8
# 安裝 Docker 社群版本
sudo apt install -y docker.io

# 啟動 Docker 服務並設定為開機自動啟動
sudo systemctl enable --now docker

# 將目前使用者加入 docker 群組,避免每次都需要 sudo
sudo usermod -aG docker $USER

這一步完成後需要 重新登入系統 或執行 newgrp docker 讓群組變更生效。

重要提醒: 將使用者加入 docker 群組可以避免每次執行 Docker 指令時都需要 sudo 權限,但請注意這會給予該使用者等同 root 的權限來操作 Docker。

1
2
# 驗證 Docker 安裝是否成功
docker version

第三步:安裝 kubectl 命令列工具

kubectl 是 Kubernetes 的官方命令列工具,用於與 Kubernetes 集群進行互動。它可以讓我們管理 Pod、Service、Deployment 等各種 Kubernetes 資源。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 取得最新穩定版本的版本號
$KUBECTL_VER=$(curl -L -s https://dl.k8s.io/release/stable.txt)

# 下載對應版本的 kubectl 執行檔
curl -LO "https://dl.k8s.io/release/$KUBECTL_VER/bin/linux/amd64/kubectl"

# 賦予執行權限
chmod +x kubectl

# 移動到系統執行路徑
sudo mv kubectl /usr/local/bin/

# 驗證 kubectl 安裝是否成功
kubectl version --client

第四步:安裝並設定 Minikube

Minikube 是一個輕量級的 Kubernetes 實作,設計用於在本地環境運行單節點的 Kubernetes 集群。它非常適合開發、測試和學習 Kubernetes。

基礎安裝

1
2
3
4
5
6
7
8
# 下載最新版本的 Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

# 安裝到系統執行路徑
sudo install minikube-linux-amd64 /usr/local/bin/minikube

# 驗證 Minikube 安裝是否成功
minikube version

以下是 Minikube 的常用操作指令,建議先熟悉這些基本指令:

1
2
3
4
5
6
7
8
9
10
11
# 查看 Minikube 版本資訊
minikube version

# 查看目前集群狀態
minikube status

# 啟動 Kubernetes 集群
minikube start

# 停止集群(保留資料)
minikube stop

啟動 Minikube 集群

在完成安裝後,我們可以開始啟動並測試 Minikube 集群:

  • 啟動minikube
1
2
3
4
5
# 使用 Docker 作為容器引擎啟動集群
minikube start --driver=docker

# 啟動集群並指定特定的 Kubernetes 版本
minikube start --driver=docker --kubernetes-version=v1.29.0
  • 建立外部存取代理
1
2
# 建立代理連線,允許外部存取 Kubernetes API
kubectl proxy --address='0.0.0.0' --disable-filter=true

注意: 此指令會在背景持續運行,建議在新的終端視窗中執行

  • 存取 Kubernetes Dashboard
1
2
# 啟動 Web 介面儀表板並取得存取網址
minikube dashboard --url

此指令會輸出一個網址,您可以在瀏覽器中開啟此網址來存取 Kubernetes 的視覺化管理介面。

查看dashboard實際運行結果

實戰範例:部署 Tomcat 應用程式

為了驗證 Minikube 環境運作正常,我們將部署一個完整的 Tomcat Web 應用程式作為示範。

步驟一:啟用 Ingress 控制器

1
2
3
4
5
# 啟用 Ingress 控制器附加元件
minikube addons enable ingress

# 等待 Ingress 控制器 Pod 準備完成
kubectl -n ingress-nginx get pods -l app.kubernetes.io/component=controller -w

提示: 使用 -w 參數可以持續監看 Pod 狀態變化,看到 Running 狀態時按 Ctrl+C 退出

步驟二:準備 Kubernetes YAML 配置檔

以下是一個完整的 Tomcat 部署配置,包含 Deployment、Service 和 Ingress 三個資源:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-deployment
spec:
replicas: 1
selector:
matchLabels:
app: tomcat
template:
metadata:
labels:
app: tomcat
spec:
containers:
- name: tomcat
image: tomcat:10.1-jdk17
ports:
- containerPort: 8080
command: ["/bin/sh","-c"]
args:
- cp -r /usr/local/tomcat/webapps.dist/ROOT /usr/local/tomcat/webapps/ && exec catalina.sh run
readinessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 10
periodSeconds: 5
---
apiVersion: v1
kind: Service
metadata:
name: tomcat-service
spec:
type: ClusterIP
selector:
app: tomcat
ports:
- name: http
port: 8080
targetPort: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: tomcat-ingress
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: tomcat-service
port:
number: 8080

步驟三:部署服務到集群

1
2
3
4
5
6
7
8
# 部署 YAML 配置到集群
kubectl apply -f tomcat.yaml

# 查看 Pod 運行狀態
kubectl get pods

# 查看所有相關資源狀態
kubectl get deployment,service,ingress

驗證服務是否正常運行:

1
2
3
4
5
# 取得 Minikube 集群 IP 位址
$MINIKUBE_IP=$(minikube ip)

# 查看 Minikube IP
echo "Minikube IP: $MINIKUBE_IP"

現在可以在瀏覽器中開啟 http://$MINIKUBE_IP 來查看 Tomcat 歡迎頁面。

VirtualBox 環境特殊設定

如果您是在 VirtualBox 虛擬機中運行 Ubuntu Server,需要進行額外的網路設定以便從主機存取服務。

SSH 隧道設定

由於 VirtualBox NAT 網路的限制,我們需要建立 SSH 隧道來橋接主機與虛擬機內的服務:

1
2
3
# 建立 SSH 隧道,將主機的 18080 埠轉發到 Minikube 的 80 埠
# 假設您的 SSH 服務運行在虛擬機的 2222 埠上
ssh -N -L 18080:$MINIKUBE_IP:80 -p 2222 $USER@127.0.0.1

參數說明

  • -N: 不執行遠端指令,僅用於建立隧道
  • -L 18080:$MINIKUBE_IP:80: 將本機 18080 埠轉發到目標的 80 埠
  • -p 2222: SSH 服務埠號
  • $USER@127.0.0.1: 使用者名稱和虛擬機位址

設定完成後,您就可以在 Windows 主機的瀏覽器中輸入 http://localhost:18080 來存取 Tomcat 服務。

VirtualBox NAT 設定

確保您的 VirtualBox 虛擬機網路設定如下:

  1. 網路介面卡設定為 NAT 模式
  2. 進階設定中開啟埠轉發規則:

網路架構圖

下圖展示了完整的 Minikube + Tomcat + Ingress 網路架構:

總結

本文詳細介紹了在 Ubuntu 24.04.3 上建置 Minikube 開發環境的完整流程,包含:

主要完成項目

  1. 系統環境準備 - 安裝必要的基礎套件和工具
  2. Docker 容器引擎 - 作為 Minikube 的容器運行時
  3. kubectl 工具 - Kubernetes 的命令列管理介面
  4. Minikube 本機集群 - 單節點 Kubernetes 環境
  5. 完整應用部署 - Tomcat Web 服務的實際範例
  6. Ingress 控制器 - 處理外部流量的入口管理
  7. VirtualBox 整合 - 虛擬機環境下的網路設定

下一步建議

完成本教學後,您可以:

  • 嘗試部署其他類型的應用程式(如 MySQL、Redis 等)
  • 學習 Kubernetes 的進階概念(ConfigMap、Secret、PersistentVolume)
  • 探索 Minikube 的其他附加元件(Metrics Server、Dashboard 等)
  • 實驗不同的部署策略(Rolling Update、Blue-Green Deployment)

常見問題排除

  • 如果遇到資源不足的問題,可以調整 Minikube 的記憶體和 CPU 配置
  • 若服務無法存取,請檢查防火牆設定和網路配置
  • Docker 權限問題請確認使用者是否已加入 docker 群組

透過這個環境,您已經具備了本地 Kubernetes 開發的基礎設施,可以開始探索容器編排和微服務架構的精彩世界。