跳到內容

Kubernetes(K8s)是一個開源的容器編排系統,用於自動化容器應用的部署、擴展和管理。 由 Google 內部的 Borg 系統演化而來,現為 CNCF 旗下最重要的專案之一。

控制平面負責管理叢集的全域決策,包含以下元件:

元件職責
API Server叢集的前端,處理所有 REST 請求
etcd分散式鍵值儲存,保存叢集狀態
Scheduler決定 Pod 部署在哪個節點
Controller Manager確保叢集狀態符合期望(replica count 等)

工作節點運行應用容器,每個節點包含:

  • kubelet:確保容器在 Pod 中正常運行
  • kube-proxy:維護節點上的網路規則
  • Container Runtime:實際執行容器(如 containerd)

Pod 是 K8s 最小的可部署單位,包含一個或多個容器。

apiVersion: v1
kind: Pod
metadata:
name: my-app
labels:
app: web
spec:
containers:
- name: app
image: nginx:1.25
ports:
- containerPort: 80
  1. 查看叢集狀態

    Terminal window
    kubectl cluster-info
    kubectl get nodes
  2. 部署應用

    Terminal window
    kubectl apply -f deployment.yaml
  3. 查看資源

    Terminal window
    kubectl get pods
    kubectl get services
    kubectl get deployments
  4. 除錯

    Terminal window
    kubectl describe pod <pod-name>
    kubectl logs <pod-name>
    kubectl exec -it <pod-name> -- /bin/sh