Kubernetes 說明
新式應用程式漸漸採用容器作為架構,應用程式的相依性和設定就封裝在這個微服務中。Kubernetes (讀音為 “koo-ber-net-ees”) 是開放原始碼軟體,用於大規模部署與管理這些容器,在希臘文中,這也表示船舵手或領航員。使用 Kubernetes (有時稱為 “k8s” 或 “k-eights”) 可以更快地建置、傳遞及調整容器化應用程式。
Kubernetes 的運作方式
隨著應用程式發展到跨多個伺服器部署的多個容器,操作方式也變得更加複雜。為了管理這樣的複雜性,Kubernetes 提供了開放原始碼 API,可用於控制這些容器的執行方式和位置。
Kubernetes 可根據可用的計算資源及每個容器的資源需求,來協調虛擬機器的叢集,並排程容器在這些虛擬機器上執行。容器會分組成 Pod,即 Kubernetes 的基本作業單位,這些 Pod 可調整成您需要的狀態。
Kubernetes 也可自動管理服務探索、納入負載平衡、追蹤資源配置,以及根據計算使用率進行調整。此外還可檢查個別資源的健康狀態,並透過自動重新啟動或複寫容器使應用程式自我修復。
為何使用 Kubernetes?
將容器化應用程式保持啟動並執行可能很複雜,原因是這通常需要在不同的機器之間部署許多容器。Kubernetes 提供排程和部署這些容器的方法,並可將其調整成您需要的狀態及管理其生命週期。使用 Kubernetes,以可攜式、可調整及可擴充的方式來實作容器型應用程式。
使工作負載具有可攜性
由於容器應用程式會與其基礎結構分開,因此當您在 Kubernetes 上執行時,這些容器應用程式會變成具有可攜性。將其從本機電腦移至內部部署、混合式和多重雲端生產環境,同時維持環境之間的一致性。
輕鬆調整容器
使用 Kubernetes 定義複雜的容器化應用程式,並將其部署到一個伺服器叢集或甚至多個叢集。當 Kubernetes 根據您需要的狀態調整應用程式時,會自動監視及維護容器的健康狀態。
建置更具擴充性的應用程式
由開發人員和公司組成的大型開放原始碼社群會主動建置延伸模組和外掛程式,為 Kubernetes 新增安全性、監視和管理等功能。此外,Certified Kubernetes Conformance Program 要求所有 Kubernetes 版本都要支援可讓您更輕鬆地使用這些社群供應項目的 API。
以完整的 Kubernetes 平台為建置基礎
雖然 Kubernetes 本身提供可攜性、延展性和擴充性,但新增端對端開發、作業及安全性控制可讓更快部署更新,同時兼顧安全性或可靠性,並省下管理基礎結構的時間。當您採用 Kubernetes 時,也請考慮實作下列事項:
-
基礎結構自動化或無伺服器 Kubernetes 可消除常態性工作,例如佈建、修補和升級。
-
用於容器化應用程式開發、持續整合以及持續部署 (CI/CD) 工作流程的工具。
-
用於管理安全性、治理、身分識別及存取權的服務。
搭配 DevOps 做法使用 Kubernetes
隨著 Kubernetes 應用程式成長 (新增容器、環境和團隊),發行頻率也可能會隨著開發和作業的複雜度而增加。在 Kubernetes 環境中應用 DevOps 做法,可讓您大規模地快速移動,並享有更高的安全性。
透過 CI/CD 更快提供程式碼
容器可提供一致的應用程式封裝格式,能簡化開發和營運團隊之間的共同作業,而 CI/CD 可以藉由自動執行這些工作加快從程式碼到容器和 Kubernetes 叢集的移動,幾分鐘內即可完成。
使用基礎結構即程式碼有效管理資源
基礎結構即程式碼可建立跨團隊計算資源的一致性和可見性,進而減少可能的人為錯誤。這種做法與 Helm 技術支援之 Kubernetes 應用程式的宣告式本質密切相關。這兩者截合起來,可讓您以可靠、可追踪和可重複的方式來定義應用程式、資源及設定。
透過常態監視來加速意見反應的傳遞
利用資源、叢集、Kubernetes API、容器和程式碼的完整檢視 (從容器健康狀態監視到集中式記錄),縮短從發現 Bug 到修正的時間。該檢視可協助您防範資源瓶頸、追蹤惡意要求,以及確保您的 Kubernetes 應用程式狀況良好。
利用 DevOps 保持速度與安全性之間的平衡
將即時可檢視性整合到您的 DevOps 工作流程,同時仍兼顧速度。自動套用合規性檢查和重新設定,保護您的組建和發行管線,以及您的 Kubernetes 應用程式。
運用 Kubernetes 的範例 DevOps 工作流程
- 在相同 Kubernetes 叢集中快速逐一查看、測試與偵錯應用程式的不同部分。
- 將程式碼合併並簽入 GitHub 存放庫以進行持續整合。接著,將執行自動化組建與測試用為持續傳遞的一部分。
- 驗證容器映像的來源和完整性。映像在通過掃描前會受到隔離。
- 使用 Terraform 等工具佈建 Kubernetes 叢集。由 Terraform 安裝的 Helm 圖表,會定義所需的應用程式資源和設定狀態。
- 實施原則以控管 Kubernetes 叢集的部署。
- 發行管線會以每個程式碼自動執行預先定義的部署策略。
- 將原則稽核與自動補救新增至 CI/CD 管線。例如,只有發行管線才有權在您的 Kubernetes 環境中建立新 Pod。
- 啟用應用程式遙測、容器健康狀態監視與即時記錄分析。
- 利用見解來解決問題,並通知下一個短期衝刺的計劃。
利用 Azure 的 Kubernetes 優勢
使用完全受控的 Microsoft Azure Kubernetes 服務 (AKS) 自動佈建、升級、監視及調整。無伺服器 Kubernetes 可提供您更簡單的開發到生產體驗,以及企業級的安全性與治理。
向 Kubernetes 社群汲取靈感和創意
Kubernetes 是數千名個人和數百個組織打造並壯大的平台,他們貢獻自己的智慧、程式碼與持續支援給該平台的使用者。透過他們充滿熱誠的貢獻,為您的軟體取得成功。
35,000
參與者
180,000
認可
熱門專案
在 GitHub 中
Microsoft 對 Kubernetes 的貢獻
將開放原始碼創意帶到企業
為了方便組織採用 Kubernetes,以及讓開發人員更容易使用,Microsoft 在短短三年內就擴編了三倍員工來參與此開放原始碼專案。身為第三大企業參與者,Microsoft 將自己在 Kubernetes 社群中和不同客戶合作習得的知識與最佳做法整合到 Kubernetes,讓企業更容易接受及使用。
常見問題集 - Kubernetes
-
請遵循 此精選旅程 來開始學習 Kubernetes。
-
在將應用程式移至雲端以簡化機器學習和 AI 挑戰的各種案例中,Kubernetes 十分有用。
關鍵使用案例包括:
-
-
Kubernetes 部署可讓您描述所需的應用程式部署狀態。Kubernetes 排程器可確保實際狀態與您期望的狀態相符,並在一或多個 Pod 損毀的情況下維持該狀態。Kubernetes 部署也可讓您在不停機的情況下持續升級應用程式。
-
使用 DevOps 部署到 Kubernetes 通常會涉及存放庫,例如用於版本管理的 Git。該存放庫會作為 CI/CD 管線的開端。根據您使用的方法,存放庫中的變更會觸發整合、建置、傳遞和部署活動。
-
Kubernetes 與 Docker 可相互搭配運作。
Docker 為封裝與分發容器化應用程式提供了開放標準。您可以使用 Docker 建置並執行容器,以及儲存並共用容器映像。
Kubernetes 可協調並管理 Docker 建立的分散式容器化應用程式。此外還提供了在機器叢集上部署及執行這些應用程式所需的基礎結構。
資源
深入了解 Kubernetes
了解 AKS
探索 Azure Kubernetes Service (AKS)
觀看 AKS 影片 及點播的 Azure 網路研討會 ,以獲得示範、最佳功能及技術研討會。
透過 GitHub、 KubeCon,或您附近的 Kubernetes 線下聚會 加入其他 AKS 使用者的行列。