iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0

前面建立的資源都放在 default。這次我們另外開一個叫 lab 的命名空間,體驗同名資源如何待在同一個叢集,卻不會互相撞名。

1. 建立 lab 命名空間

先建立命名空間,再確認它已經出現在清單裡:

kubectl create namespace lab
kubectl get namespaces

看到 lab 的狀態是 Active,表示它已經可以放入資源。如果名稱不存在,下一步指定 -n lab 時就會直接報錯。

2. 在 lab 建立另一個 web

default 裡已經有一個 web,現在我們在 lab 再建立一個同名 Deployment。-n lab 的意思,就是把這次操作送到 lab:

kubectl create deployment web --image=nginx:1.28 -n lab
kubectl rollout status deployment/web -n lab --timeout=120s

即使名字相同也能建立成功,因為兩個 Deployment 所在的命名空間不同。查詢或排錯時,除了資源名稱,也要一起確認它住在哪裡。

3. 分別查看兩個 web

先各查一次,再用跨命名空間查詢比較結果。最後一個指令會多顯示 NAMESPACE 欄位,讓你看出每個 web 實際屬於哪裡:

kubectl get deployments -n default
kubectl get deployments -n lab
kubectl get deployments --all-namespaces

4. 確認預設位置

這系列會繼續在指令中明確寫出命名空間。如果你之前改過目前 context 的預設值,先切回 default,避免後面的指令跑到不同位置:

kubectl config set-context --current --namespace=default

先保留 lab,下一篇實作還會用到它。也別急著執行 kubectl delete namespace lab,因為刪除命名空間時,裡面的 Deployment、Pod 和其他資源都會一起消失。

參考:命名空間的操作方式


上一篇
DAY 1 0
下一篇
Day 12
系列文
我的 Pod 又掛了:30 天學會 Kubernetes 共 15 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言