Skip to main content

Kubernetes 核心名詞對照表


基礎資源

名詞一句話類比重點
Pod最小部署單位,跑一個或多個 container一台機器上跑的一個 process一個 Pod = 一個工作單位,Pod 掛掉 K8s 會自動重啟
Deployment管理 Pod 的副本數量、更新策略PM 說「這個服務要跑 3 份」標準的無狀態服務 workload 類型,支援 rolling update 不中斷服務
StatefulSet有狀態的 Deployment,每個 Pod 有固定名稱和磁碟資料庫 instance向量 DB、時序 DB 用這個,每個 Pod 有固定的 index(-0, -1, -2)
DaemonSet每個 Node 跑一個 Pod每台機器都裝的 agentnode-exporterfluentd 都用 DaemonSet,新 Node 加入自動安裝
CronJob定時執行的 Jobcrontab定期跑 batch 任務、清理舊資料

網路與路由

名詞一句話類比重點
Service給一組 Pod 一個穩定的內部 IP/DNS櫃台接待Pod IP 會變,Service IP 固定;分 ClusterIP、NodePort、LoadBalancer
IngressL7 路由規則(host/path → Service)大樓門口指示牌對外暴露 HTTP/HTTPS endpoint,可以配 TLS、path routing
Namespace資源隔離的虛擬分組辦公室的不同樓層把不同服務分開,避免 resource quota 互相影響

跨 namespace 溝通:

# 同 namespace:直接用 service 名稱
curl http://my-service:8080

# 跨 namespace:用 FQDN
curl http://my-service.monitoring.svc.cluster.local:8080

設定與機密

名詞一句話類比重點
ConfigMap存設定檔(非機密)共用資料夾的 config改設定不用重 build image;可當環境變數或 volume 掛載
Secret存機密資料(密碼、token)保險箱裡的 configbase64 編碼(不是加密);生產環境建議配合 Secrets Manager + ESO

ConfigMap 兩種用法:

# 用法 1:環境變數
env:
- name: MAX_BATCH_SIZE
valueFrom:
configMapKeyRef:
name: my-config
key: MAX_BATCH_SIZE

# 用法 2:掛成設定檔
volumeMounts:
- name: config
mountPath: /app/config
volumes:
- name: config
configMap:
name: my-config

儲存

名詞一句話類比重點
PVCPersistentVolumeClaim — Pod 的磁碟申請單跟 IT 申請硬碟TSDB、DB 需要 PVC;無狀態服務通常不需要
PVPersistentVolume — 實際的磁碟IT 給你的硬碟K8s 自動幫你建,通常不需要手動管
StorageClass磁碟的規格表硬碟型號目錄EKS 用 gp3,比 gp2 便宜且 IOPS 更好

擴縮與資源控制

名詞一句話類比重點
HPAHorizontal Pod Autoscaler — 自動水平擴縮流量大自動加 worker根據 CPU/memory/custom metrics 自動調整 replica 數量
ResourceQuota限制一個 namespace 能用多少資源部門預算上限防止一個服務把整個 cluster 的資源吃光
LimitRange設定 Pod 的預設資源和上下限每個員工的費用報銷上限沒設 resources 的 Pod 套用預設值

HPA 範例:

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: my-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: my-service
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70

擴展機制

名詞一句話類比重點
CRDCustomResourceDefinition — 自訂資源類型教 K8s 認識新東西Prometheus Operator、VictoriaMetrics Operator 都用 CRD
Operator自動管理 CRD 的 controller機器人看 CRD,有變化就處理幫你自動管複雜的有狀態系統

基礎工具

名詞一句話用途
kubectlK8s 的 CLI 工具debug、部署、查 log 的日常工具
HelmK8s 的套件管理工具部署 Prometheus、Grafana 等,不用手寫一堆 YAML
NodeK8s cluster 裡的一台機器Pod 排到哪個 Node 取決於 nodeSelector / nodeAffinity

常用 kubectl 指令

# 查看 pods
kubectl get pods -n <namespace>
kubectl describe pod <pod-name> -n <namespace>

# 查 logs
kubectl logs <pod-name> -n <namespace>
kubectl logs <pod-name> -n <namespace> --previous # 上一次掛掉的 log

# 進 container
kubectl exec -it <pod-name> -n <namespace> -- /bin/sh

# 查 resource 使用量
kubectl top pods -n <namespace>
kubectl top nodes

# 重啟 deployment
kubectl rollout restart deployment/<name> -n <namespace>