Kubernetes
名詞 · 編排
由 Google 創建的開源容器編排系統,自動化容器化應用程式的部署、擴展和營運管理——已成為大規模生產環境中執行微服務的產業標準。
分散式雲端運算平台(也稱為 K8s),持續監控應用程式的期望狀態,自動重啟故障容器、分配流量並管理零停機更新。
由 Cloud Native Computing Foundation(CNCF)支持的成熟且可擴展的生態系統,提供工具網路(Helm、Istio、Prometheus),被 AWS(EKS)、Google Cloud(GKE)和 Azure(AKS)採用為參考雲原生編排層。
Docker 和 Kubernetes 是互補的:Docker 建立和執行個別容器,而 Kubernetes 在生產環境中編排和管理整個容器群。Docker 打包您的應用程式,Kubernetes 確保它以正確數量的副本運行、自動修復並零停機更新。我們的團隊結合這兩項技術,為客戶提供彈性且自動擴展的架構。
Kubernetes 按照宣告式模型運作:您在 YAML 檔案中描述基礎設施的期望狀態(副本數量、資源、網路),Kubernetes 的控制平面持續工作以維持該狀態。排程器將 Pod 分配到節點,控制器管理器監控偏差,kubelet 在每個節點上執行容器。我們利用此機制為客戶保證最高可用性和零停機部署。
當應用程式需要處理可變負載、需要高可用性或依賴微服務架構時,Kubernetes 就變得不可或缺。它自動化水平擴展、負載平衡、滾動更新和容器故障時的自動恢復。我們的團隊向需要應對不可預測流量尖峰同時維持穩定效能和接近 100% 可用性的企業推薦 Kubernetes。
Kubernetes 被全球最大的科技公司使用,包括 Google、Spotify、Airbnb、Adidas 和 NASA,以及越來越多快速成長的中小企業和新創公司。根據 CNCF,超過 96% 採用雲端的組織正在使用或評估 Kubernetes。我們的團隊將客戶專案部署在 Kubernetes 上,提供與網路巨頭相同的穩健性和彈性。
Kubernetes 提供完整的功能集:容器編排、水平和垂直自動擴展、服務發現和負載平衡、滾動更新和自動回滾、密鑰和設定管理、持久卷掛載以及自動修復(self-healing)。它還整合了 RBAC 安全系統並支援命名空間進行多租戶隔離。我們利用這些功能建構穩健且安全的雲端平台。
Kubernetes 叢集是在控制平面(control plane)監督下執行容器化應用程式的一組機器(節點)。控制平面包含 API Server、排程器和 etcd(分散式資料庫),而工作節點託管包含應用容器的 Pod。我們的團隊在託管雲端供應商(EKS、GKE)上規劃和配置客戶的叢集,優化成本和韌性。
要使用 Kubernetes,首先需要一個叢集(透過 Minikube/Kind 建立本地叢集或透過雲端供應商建立託管叢集),然後在 YAML 宣告檔中描述定義 Deployments、Services 和 Ingress 的應用程式。命令列工具 `kubectl` 用於套用這些設定和監控叢集狀態。我們的團隊從叢集初始化到生產上線全程陪伴客戶,包括使用 Helm 和 ArgoCD 等工具的 CI/CD 整合。
Kubernetes 發音為「酷-伯-涅-提斯」,常縮寫為 K8s(「8」代表 K 和 S 之間的八個字母)。名字來自古希臘語「κυβερνήτης」(kubernêtês),意為「舵手」或「領航員」,完美反映了平台的角色:駕駛和編排您的應用容器。在 Async Code,我們在日常技術交流中偏好使用 K8s 縮寫以更簡潔。
根本區別在於 Docker 是容器化工具(建立和執行容器),而 Kubernetes 是編排器(管理和協調生產環境中的數百個容器)。Docker 用於單一機器,Kubernetes 用於機器叢集。兩者不是競爭對手而是互補的:Docker 建構容器,Kubernetes 編排它們。我們的團隊精通這種互補性,部署高可用的微服務架構。
Kubernetes 的主要優勢包括自動擴展(自動適應負載尖峰)、自我修復(自動重啟故障容器)、零停機部署、多雲可攜性以及透過智慧資源裝箱優化基礎設施成本。Kubernetes 還減少對單一雲端供應商的依賴(避免廠商鎖定)。我們將這些優勢整合到每個客戶專案中,確保應用程式具有彈性、經濟高效且為成長做好準備。