iT邦幫忙

2022 iThome 鐵人賽

DAY 4
1
DevOps

30天準備CKA考試系列 第 4

Day 04:Pods

  • 分享至 

  • xImage
  •  

Day 04:Pods

Pod

簡單來說就是Containers的集合,1個Pod會包含至少一個Container。

Sidecar Container

Pod內包含多個Container時,用來輔助Application Container的Container,例如:Log Agent。

如何建立Pod?

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
    

怎麼寫YAML呢?

Kubernetes大部份物件的YAML都需要包含四個部分:

  1. apiVersion:這個物件的api版本,但是這個部分有時候會隨著集群升版而改變,考試中要查詢api版本的方法有3種。
    1. kubectl api-resources
    2. kubectl run nginx-pod --image nginx ––dry-run=client -o yaml
    3. 在官網查。
  2. kind:物件種類。
  3. metadata:我想像成這個物件的形容詞,名字叫什麼?在什麼Namespace?它被加上哪些Label?
  4. spec:這個物件的詳細規格。

要怎麼更新Pod?

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

參考資料

kubectl Cheat Sheet


上一篇
Day 03:Kubernetes的架構
下一篇
Day 05:ReplicationController vs. ReplicaSet
系列文
30天準備CKA考試30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言