---
title: "Ubuntu 上的 Kubernetes 安裝 Metrics Server"
description: "介紹如何在 Ubuntu 上安裝與設定 Kubernetes Metrics Server，包含部署指令、配置調整與 kubectl top 資源監控查看方式。"
canonical_url: "https://blog.markkulab.net/post/ubuntu-install-kubernetes-metrics-server"
author: "Mark Ku"
author_url: "https://blog.markkulab.net/author/mark-ku"
site: "Mark Ku's Blog"
date_published: "2024-12-03T01:01:35+08:00"
category: "DevOps"
tags: ["ubuntu", "kubernetes", "metrics server", "kubectl", "devops", "infra"]
language: "zh-TW"
license: "CC BY 4.0"
license_url: "https://creativecommons.org/licenses/by/4.0/"
attribution: "轉載或引用請註明作者並附上原文連結"
---

# Ubuntu 上的 Kubernetes 安裝  Metrics Server

## 前言

在 Kubernetes 中，`Metrics Server` 是一個重要的組件，它提供集群資源使用情況的即時度量數據。這些度量數據對於管理和調整 Pod、節點資源的使用情況至關重要。本文將介紹如何安裝、配置以及查看 Metrics Server 的數據。


## Kubernetes 主要有兩種 Metrics 

* 核心指標 (Core metrics)：在 Kubelet、cAdvisor 獲取相關數據，再由metrics-server提供给給橫向展展控制器 HPA 及其他服務使用。
* 自定義指標 (Custom Metrics)：Prometheus蒐集到的數據指標。


## 1. 安裝 Metrics Server

首先，我們需要安裝 `Metrics Server`。它的安裝配置非常簡單，可以直接通過 Kubernetes 的 YAML 文件進行部署。請運行以下命令來下載並應用最新版本的 Metrics Server 部署配置：

```bash
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
```

這會自動從 GitHub 下載最新的 `metrics-server` 配置並部署到你的 Kubernetes 集群中。

## 2. 配置默認編輯器為 `vim`

在 Kubernetes 中，對於某些命令（例如 `kubectl edit`）會使用預設編輯器進行編輯。如果你習慣使用 `vim`，可以設置 `KUBE_EDITOR` 環境變數來更改默認編輯器。運行以下命令來設置：

```bash
export KUBE_EDITOR=vim
```

這樣，每次執行 `kubectl edit` 命令時，系統就會自動啟動 `vim` 來進行編輯。

## 3. 檢查 Metrics Server 的運行狀態

安裝並部署完 `Metrics Server` 後，可以通過以下命令來檢查其運行狀態：

### 查看 Metrics Server 的日誌：

```bash
kubectl logs -n kube-system -l k8s-app=metrics-server
```

這會顯示 `metrics-server` 的日誌，讓你檢查它是否成功啟動並正常運行。

### 查看集群資源使用情況：

```bash
kubectl top po -A
```

這條命令會顯示所有命名空間中 Pod 的資源使用情況，包括 CPU 和內存的使用量。這有助於你了解集群的整體資源消耗。

## 4. 修改 Metrics Server 配置

有時候，你可能需要修改 `metrics-server` 的配置，例如調整資源限制或修改其他參數。你可以使用以下命令來編輯 Metrics Server 的 Deployment：

```bash
kubectl edit deployment -n kube-system metrics-server
```

這會打開一個編輯器，你可以根據需要修改 YAML 配置，

在 args 裡加上一欄

```
- --kubelet-insecure-tls
```
加入檢查憑證的設定
```
spec:
  containers:
  - args:
    - --cert-dir=/tmp
    - --secure-port=4443
    - --kubelet-insecure-tls
    - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
    - --kubelet-use-node-status-port
    image: k8s.gcr.io/metrics-server/metrics-server:v0.4.1
    imagePullPolicy: IfNotPresent
```

### 更新後，重啟metrics，並確認部署狀態
使用以下命令來確保修改已經應用並且沒有錯誤
```bash
kubectl rollout status deployment metrics-server -n kube-system
```

這將顯示 `metrics-server` 的滾動更新狀態，當所有的 Pod 成功更新後，顯示 "deployment "metrics-server" successfully rolled out"。  

檢查 metrics-server 狀態
```bash
kubectl get pods -n kube-system -l k8s-app=metrics-server
```

測試
```
kubectl top get nodes
kubectl top get pods
```
![kubectl top command](https://blog.markkulab.net/content/markku/posts/ubuntu-install-kubernetes-metrics-server/images/kubectl-top-command.png)

## 總結

Metrics Server 是 Kubernetes 中非常有用的一個組件，能夠幫助你更好地管理集群中的資源使用情況。通過本文，你學會了如何安裝、配置和使用 Metrics Server，以及如何查看和修改它的部署配置。希望這些操作能夠幫助你更高效地管理 Kubernetes 集群中的資源。

---

## 關於本文與作者

本文出自 [Mark Ku's Blog](https://blog.markkulab.net/post/ubuntu-install-kubernetes-metrics-server)

授權條款： [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) — 轉載或引用請註明作者並附上原文連結

### 關於作者

**[Mark Ku](https://blog.markkulab.net/author/mark-ku)** — Software Solution Provider

- 10+ 年資深軟體工程師，現為 AI 應用 Builder
- 專注大型平台架構設計，從北美電商到AI SaaS訂閱收費系統
- 結合 AI Agent 與自動化，打造高效可演進的產品技術基礎

### 作者開發的免費工具

以下工具皆可免費使用：

- [免費 PDF 簽名工具](https://blog.markkulab.net/tools/pdf-sign): 線上 PDF 簽名工具，瀏覽器內完成手繪、打字、上傳簽名，可拖曳放置、縮放、下載。所有處理都在你的裝置完成，檔案不會上傳。
- [VS Code Refactory](https://blog.markkulab.net/tools/refactory): Refactory 是一款 VS Code 重構擴充套件：34 個重構動作、37 條 code smell 檢查、Code Health 儀表板、18 種語言、534 支測試。懂你的專案慣例：介面放哪、DI 註冊寫在哪、'use client' 該不該加；還會用 git 修改頻率 × 複雜度排出「該先修哪個檔案」，並一鍵把壞味道交給你自己電腦上的 Claude Code 修。免費使用，原始碼不離開你的機器。
- [DB-Kit 資料庫管理工具](https://blog.markkulab.net/tools/db-kit): DB-Kit 是一個用 Tauri + Rust + React 打造的輕量跨平台資料庫管理工具，用單一一致的介面同時管理 MySQL、MariaDB、PostgreSQL、SQL Server、Oracle、SQLite、MongoDB、Redis、Kafka、Elasticsearch 與 RabbitMQ 十一種資料來源：連線密碼以 OS keychain 加密、SSH Tunnel、完整 CRUD、視覺化查詢建構器、多結果集同時顯示、跨連線資料傳輸與比對同步、Excel / CSV 匯入匯出、執行計畫視覺化、ER 圖、排程備份、SQL 壓力測試（p50～p99 延遲百分位）、15 條規則的 SQL 審查、Kafka 訊息瀏覽與監控告警；繁中 / 英文雙語介面，內建 AI 助手（自然語言生成 SQL、AI 審查與調校建議）與命令列工具 dbk。免費開源（MIT），提供 Windows / macOS / Linux 安裝檔。
- [VS Code Super Mermaid](https://blog.markkulab.net/tools/super-mermaid): Super Mermaid 是一款 VS Code 擴充套件：開箱即用的漂亮 Mermaid 圖表，自動上色、即時預覽、滑鼠平移縮放、PNG / SVG 高解析匯出，內建 21 種範本與多種主題。免費開源（MIT）。
- [React Super Mermaid](https://blog.markkulab.net/tools/react-super-mermaid): react-super-mermaid 是一個開源 React 元件庫：一行 <MermaidViewer> 即可渲染漂亮的 Mermaid 圖表，內建 colorful / sketch 主題、平移縮放、圖內搜尋、SVG / PNG 高解析匯出。輕量、SSR 安全、完整 TypeScript 型別。免費開源（MIT）。
- [Jira / Confluence Super Mermaid](https://blog.markkulab.net/tools/jira-super-mermaid): Atlassian Forge app：在 Jira issue 與 Confluence 內文直接寫 Mermaid 語法，畫流程圖、時序圖、狀態機與甘特圖。11 種圖表、SVG / PNG 匯出、明暗主題、完整中日韓文字支援。取得 Runs on Atlassian 資格：圖表存在你自己的站台，app 不呼叫任何第三方服務。免費，即將上架 Atlassian Marketplace。
- [Mermaid 線上預覽](https://blog.markkulab.net/tools/mermaid-preview): 在瀏覽器裡寫 Mermaid、即時看圖，整張圖表壓進網址就能分享。免註冊、不上傳伺服器，相容 mermaid.live 的分享連結。
- [React Intl Phone Number](https://blog.markkulab.net/tools/react-intl-phone-number): react-intl-phone-number 是一個開源 React 元件：framework-agnostic、不依賴 antd，提供 E.164 進出、可搜尋國旗 / 國碼下拉、可配置驗證等級（strict / mobile-strict / loose）、可主題化 CSS 與 i18n，電話邏輯由 google-libphonenumber 驅動。輕量、完整 TypeScript 型別。免費開源（MIT）。
- [Uptime Kuma Cluster](https://blog.markkulab.net/tools/uptime-kuma-cluster): 把單機版 Uptime Kuma 改造成高可用叢集：OpenResty + Lua 智慧負載平衡、MariaDB 共享狀態、健康檢查與自動 Failover，附叢集管理 REST API，一行 Docker Compose 啟動。免費開源（MIT）。
- [特教專案](https://blog.markkulab.net/education): 為特殊教育學生製作的學習教材

### 每日 Podcast

- [科技新鮮事](https://blog.markkulab.net/category/tech-news): 每日精選 AI 與科技趨勢，透過語音摘要快速掌握最新技術動態，涵蓋 AI 應用、軟體架構、DevOps 與工程實戰。 — RSS: https://blog.markkulab.net/feed.xml
- [AI股市蝦聊](https://blog.markkulab.net/category/ai-stock-chat): 每個交易日用 AI 分析台股盤勢，以雙人對話聊當天的盤中觀察與隔日預測。 — RSS: https://blog.markkulab.net/ai-stock-chat/feed.xml

### 電子報

[訂閱電子報](https://blog.markkulab.net/subscribe) — 第一時間收到新文章通知，無垃圾信、隨時可取消訂閱。
