2023/05/23 更新: 為了避免本文章散落在不同網站,之後統一由部落格更新,再麻煩從部落格查看~
本文章同時發佈於:
文章為自己的經驗與夥伴整理的內容,設計沒有標準答案,如有可以改進的地方,請告訴我,我會盡我所能的修改,謝謝大家~
大家好,今天要介紹 K8s 到底有哪些 config yaml 檔,他們又是何種用途。
圖片來源: Kubernetes, At A First Glance
K8s 有非常多的元件來建構豐富多樣的架構,但我們可已由高至低了解以下 4 個不同層級的重要元件,會比較好理解:
Pod 可以理解為一個或多個 docker 容器怎麼啟動在 K8s 中,而在 kompose 轉換中沒有出現此 config 檔案,為什麼呢?
因為 Pod 之上有 Deployment,他除了描述 Pod 的行為外,還會描述Pod在K8s上狀態發生變化時要對應的機制
。
而關於如何連線存取這些Pod
,就要透過 Service 來設定
Service 與 Deployment 中有些 config 使用的欄位相同,分別是:
Deployment 的欄位介紹:
# server-service.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.16.0 (0c01309)
creationTimestamp: null
labels:
io.kompose.service: server
name: server
spec:
replicas: 1
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: server
spec:
containers:
- command:
- go
- run
- cmd/main.go
image: superj80820/digimon-service
name: server
ports:
- containerPort: 6000
resources: {}
restartPolicy: Always
status: {}
Service 的欄位介紹:
# server-service.yaml
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.16.0 (0c01309)
creationTimestamp: null
labels:
io.kompose.service: server
name: server
spec:
ports:
- name: "6000"
port: 6000
targetPort: 6000
selector:
io.kompose.service: server
status:
loadBalancer: {}