iT邦幫忙

2026 iThome 鐵人賽

DAY 7
0

上一回我們直接建立 Pod,刪掉後就真的消失了。這次換 Deployment 接手,看看它如何幫我們維持指定的 Pod 數量。

1. 建立兩個網站副本

建立名為 web 的 Deployment,使用 Nginx 映像,並要求它維持兩個副本:

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

看到 successfully rolled out 代表這次部署已經完成。接著把 Deployment、ReplicaSet 和 Pod 一起列出來:

kubectl get deployments,replicasets,pods

它們的名稱雖然不同,卻是一層管一層:Deployment 管 ReplicaSet,ReplicaSet 再負責維持 Pod。也可以用標籤只找出這次建立的 Pod:

kubectl get pods -l app=web

2. 故意刪掉一個 Pod

從查詢結果複製其中一個完整名稱,把下面的 POD_NAME 換掉。刪除前先記住名稱,等等比較才看得出變化:

kubectl delete pod POD_NAME
kubectl get pods -l app=web

稍等一下再查,你會看到一個新名字的 Pod 被補回來。原本的 Pod 並沒有復活,是 ReplicaSet 發現少了一個副本,另外建立新的來補足數量。

所以不要把重要資料只放在 Pod 裡;新 Pod 不會自動帶回舊容器中的暫存檔案,需要保存的內容之後要另外處理。

3. 手動調整副本數

接著把副本加到三個,等待全部完成後,再恢復成兩個:

kubectl scale deployment web --replicas=3
kubectl rollout status deployment/web --timeout=120s
kubectl get pods -l app=web
kubectl scale deployment web --replicas=2

最後保留 web,下一篇還要替它加上 Service。如果新 Pod 一直沒有啟動,先用 kubectl describe pod 查看事件,不要看到控制器存在,就認為部署一定成功。

參考:Deployment 的副本與更新管理


上一篇
DAY 6
下一篇
DAY 8
系列文
我的 Pod 又掛了:30 天學會 Kubernetes8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
eating11111
iT邦新手 4 級 ‧ 2026-09-21 12:52:46

我的pod也壞掉了,可以幫幫我嗎?

愛瘸瘸 iT邦新手 5 級 ‧ 2026-09-21 12:53:49 檢舉

來樓梯口一下,馬上幫你

justin_log 你怎麼看

0
yeelongma
iT邦新手 5 級 ‧ 2026-09-22 13:54:45

在光緒二十六年, 神助拳義和團
扶清滅洋, 五十五天在北京
天無雨, 地焦旱
鬼子眼珠皆發藍
神仙發愁, 一同下山把道傳
非是邪、非白蓮, 口念咒語法真言
升黃表、敬香煙, 請來各洞諸神仙
弟子同心苦用功, 遍地草木化成兵, 憑仙人之藝, 定滅洋人一掃平
慈禧太后發令, 義和團向前進
要把洋鬼子全都趕出北京!
兵法藝、都學全, 平定鬼子不費難
大法國、心膽寒, 英美德俄盡消然
拆鐵道、拔線杆, 快毀壞火輪船
洋鬼子、盡除完, 大清一統江山
最可恨那毒蛇猛兽, 吃尽我们血肉
热血已沸腾
五十五天在北京
扶清滅洋, 五十五天在北京

愛瘸瘸 iT邦新手 5 級 ‧ 2026-09-22 13:55:18 檢舉

什麼鬼

我要留言

立即登入留言