Kubernetes 是一個開源的容器管理平台,它可以幫助您自動化容器應用程式的部署、擴展和管理。在 Kubernetes 中,有兩種主要的管理方式:命令式和宣告式。
注重在「How to do」
命令式管理方式是通過直接給 Kubernetes 下達指令,告訴它應該如何進行操作。這些指令可能是使用 kubectl 命令行工具直接操作的,也可能是使用其他的客戶端工具或程式碼(shell script腳本)來執行的。
創建一個名為 my-nginx
的 Deployment,並指定副本數為 3。以下是使用kubectl create
的範例。
# 使用命令式方式創建 Deployment
kubectl create deployment my-nginx --image=nginx --replicas=3
注重在「What to do」
宣告式管理方式則是通過提供一個描述狀態的文件(通常是 YAML 格式),然後將該文件提交給 Kubernetes,讓 Kubernetes 根據這份文件建立所需的資源或是配置。
創建一個名為 my-nginx
的 Deployment,並指定副本數為 3。以下是使用YAML描述相同的 Deployment,並使用kubectl apply
去做部屬。
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
spec:
replicas: 3
selector:
matchLabels:
app: my-nginx
template:
metadata:
labels:
app: my-nginx
spec:
containers:
- name: nginx
image: nginx
使用 kubectl 的 apply
命令來創建或更新這個 Deployment:
# 使用宣告式方式創建或更新 Deployment
kubectl apply -f my-nginx-deployment.yaml
命令式管理方式快速直觀,但容易導致碎片化且不利於自動化。宣告式管理方式則更適合長期運營,具有可追蹤性、可維護性和一致性,適合自動化和版本控制。