Kubernetes 舊版文件

tags: Kubernetes
category: DevOps
description: Kubernetes 舊版文件
created_at: 2026/01/16 12:20:00

cover image


回到 Kubernetes 學習筆記


事前準備

  • 安裝好 git
  • 準備好容器的執行環境,我們這裡採用 docker
  • 裝好 wsl 或是你本身就有 shell 環境,如果有 make 指令就更好了。
    • 或是你乾脆跑一個 linux 的虛擬機器也可以,或是跑一個 container 掛載進去也行。

前言

在寫前一篇安裝筆記的時候為了多做一點功課,也翻了一些書籍來參考,但是大多對於安裝其實都沒有說明細節,於是我就很好奇到底為什麼書上和文件上有對不到的地方,然後我就先照著官方最新版的去操作,發現好像也沒什麼特別的問題。

我本來以為說不定會踩到奇怪的坑,所以書上才會多加一些參數(?)

總之,這一篇的目的就是用容器化的方式快速的在本地去啟動舊版的 kubernetes 官方文件,因為官方上面只有部署前幾個版本的文件,有時我們可能需要更舊版的文件,那就只能自己去部署本地的版本了。


快速開始

官方的文件網站 repo: https://github.com/kubernetes/website

首先我們先把這個倉庫 clone 下來

git clone https://github.com/kubernetes/website

接著我們可以看到他有多個和版本相關的 branchestags

git branch -a | grep release

會看到

  remotes/origin/release-1.10
  remotes/origin/release-1.11
  remotes/origin/release-1.12
  remotes/origin/release-1.13
  remotes/origin/release-1.14
  remotes/origin/release-1.15
  remotes/origin/release-1.16
  remotes/origin/release-1.17
  remotes/origin/release-1.18
  remotes/origin/release-1.19
  remotes/origin/release-1.20
  remotes/origin/release-1.21
  remotes/origin/release-1.22
  remotes/origin/release-1.23
  remotes/origin/release-1.24
  remotes/origin/release-1.25
  remotes/origin/release-1.26
  remotes/origin/release-1.27
  remotes/origin/release-1.28
  remotes/origin/release-1.29
  remotes/origin/release-1.30
  remotes/origin/release-1.31
  remotes/origin/release-1.32
  remotes/origin/release-1.33
  remotes/origin/release-1.34
  remotes/origin/release-1.4
  remotes/origin/release-1.5
  remotes/origin/release-1.6
  remotes/origin/release-1.7
  remotes/origin/release-1.8
  remotes/origin/release-1.9

可以依照你的需求去做切換,假設我們這邊想看 v1.24 的舊版文件:

git checkout release-1.24

接著我們需要 sub-module 也更新下來:

git submodule update --init --recursive --depth 1

接著如果你有 make 指令的話,可以直接使用 make 來啟動文件網站:

make container-serve

如果順利的話,到這邊就完成了,接著打開瀏覽器輸入 http://localhost:1313 就可以看到舊版的 kubernetes 文件網站了。

但,如果沒有 make 指令的話,請繼續往下看。


沒有 make 指令怎麼辦?

參考 Makefile 我們可以手動拼湊出使用的 image 名稱和最少需要執行的指令。

以下以 v1.24 為例

Makefile 的前幾行長這樣:

HUGO_VERSION      = $(shell grep ^HUGO_VERSION netlify.toml | tail -n 1 | cut -d '=' -f 2 | tr -d " \"\n")
NODE_BIN          = node_modules/.bin
NETLIFY_FUNC      = $(NODE_BIN)/netlify-lambda

# The CONTAINER_ENGINE variable is used for specifying the container engine. By default 'docker' is used
# but this can be overridden when calling make, e.g.
# CONTAINER_ENGINE=podman make container-image
CONTAINER_ENGINE ?= docker
IMAGE_REGISTRY ?= gcr.io/k8s-staging-sig-docs
IMAGE_VERSION=$(shell scripts/hash-files.sh Dockerfile Makefile | cut -c 1-12)
CONTAINER_IMAGE   = $(IMAGE_REGISTRY)/k8s-website-hugo:v$(HUGO_VERSION)-$(IMAGE_VERSION)
CONTAINER_RUN     = "$(CONTAINER_ENGINE)" run --rm --interactive --tty --volume "$(CURDIR):/src"

可以看出我們需要的 CONTAINER_IMAGE 是由 IMAGE_REGISTRYHUGO_VERSIONIMAGE_VERSION 三個部分組成的。

  • IMAGE_REGISTRY 是固定的 gcr.io/k8s-staging-sig-docs
  • HUGO_VERSION 是從 netlify.toml 裡面抓取的,我們可以肉眼去看,或是直接執行指令,可以得到 0.101.0
  • IMAGE_VERSION 是透過 scripts/hash-files.sh 這個指令去計算出來的,我們可以直接執行這個指令來取得,結果是 215aaa9df947

所以我們最終的 CONTAINER_IMAGE 就是:

gcr.io/k8s-staging-sig-docs/k8s-website-hugo:v0.101.0-215aaa9df947

接著我們可以參考 Makefile 裡面 container-serve 的指令,然後我這裡把它做一點瘦身:

docker run --rm -it -v $PWD:/src -p 1313:1313 \
gcr.io/k8s-staging-sig-docs/k8s-website-hugo:v0.101.0-215aaa9df947 \
hugo server --bind 0.0.0.0

接著你就可以在 http://localhost:1313 看到舊版的 kubernetes 文件網站了。


可能會遇到的問題

某些版本(比較舊)的文件,可能官方提供的 image 存取不到,這時可以使用其他的 hugo image 來替代,或是反正只是文件性質的東西,乾脆使用新版的文件提供的 imagebuild 也行。 (反正目的只是要看到文件內容)

例如我們要跑 v1.10 的文件,但是官方的舊版 image 已經存取不到了,我們可以一樣使用剛才的 k8s-website-hugo:v0.101.0-215aaa9df947 去跑。

如果真的碰到了什麼問題,那麼再來處理也不遲。


結語

透過這個方式,我們就可以快速的在本地啟動舊版的 kubernetes 文件網站。

後來我也成功的在舊版的文件看到了書上在安裝 k8s 時的設定,確實存在於舊版的官方文件中。

只是新版的文件就沒有在提及那些設定了,因為我們在安裝其他套件以及啟用模組時,已經幫忙自動啟用了那些設定。




最後更新時間: 2026年01月16日.