簡單來說就是Containers的集合,1個Pod會包含至少一個Container。
Pod內包含多個Container時,用來輔助Application Container的Container,例如:Log Agent。
Kubernetes想要建立各種Objects的方法分為兩類,Imperative和Declarative。
Imperative:逐步告知系統要建構一個Pod需要做哪些事,像是Name, Image, …
# 建立一個名字叫nginx-pod的Pod,這個Pod使用的image為nginx
kubectl run nginx-pod --image nginx
Declarative:直接告知spec,過程怎麼發生的,我們不在意。要怎麼告知spec呢?在Kubernetes一般來說是用YAML,但是也支援JSON。
# nginx.yaml是使用者自己建立的
kubectl apply -f nginx.yaml
Kubernetes大部份物件的YAML都需要包含四個部分:
Pod在運作時是無法更新的,必須先刪除舊的Pod,再部署新的Pod,但是這和Container一樣,沒放在會永久保存的Volume內的資料都會在Pod被刪除時消失。
# 先刪除舊的,再建立新的,-f是file
kubectl replace -f nginx.yaml
# 相當於先刪除Pod
kubectl delete -f nginx.yaml
# 再建立新的Pod
kubectl create -f nginx.yaml