什麼是 Kubernetes?

Kubernetes 是用於部署、管理和調整容器的開放原始碼協調流程軟體

Kubernetes 說明

新式應用程式有傾向使用容器 - 微服務架構建置的趨勢,應用程式的相依性和設定就封裝在這個架構中。Kubernetes (簡稱 k8s) 是開放原始碼軟體,用於大規模部署與管理這些容器。使用 Kubernetes,您可以更快地建置、交付及擴展容器化應用程式。

透過此簡單的學習路徑探索 Kubernetes

Kubernetes 的運作方式

隨著應用程式發展到跨多個伺服器部署的多個容器,操作方式也變得更加複雜。為了管理這樣的複雜性,Kubernetes 提供了開放原始碼 API,可用於控制這些容器的執行方式和位置。

Kubernetes 可協助您協調虛擬機器叢集,並根據虛擬機器可用的計算資源及每個容器的資源需求,安排容器在這些虛擬機器上執行。容器會分成一組組 Pod,即 Kubernetes 的基本作業單元,可擴展成您需要的狀態。

Kubernetes 可協助您管理服務探索、整合負載平衡、追蹤資源配置、根據計算使用率進行調整、檢查個別資源的健康狀態,並透過自動重新啟動或複寫容器使應用程式自我修復。

觀看更多有關 Kubernetes 基本概念的影片

為何使用 Kubernetes?

以可攜帶、可調整及可擴充的方式來實作容器型環境。

可攜性

從本機開發機器將容器化工作負載順暢地移至生產環境。在內部部署基礎結構、公用雲端和混合式雲端等不同環境中以一致的方式協調容器。

延展性

定義複雜的容器化應用程式,並在伺服器叢集 (甚至多個叢集) 中進行全域部署,Kubernetes 會根據您所需的狀態將資源最佳化。當 Kubernetes 水平調整應用程式規模時,會自動監視及維護容器的健康狀態。

擴充性

存取持續增長的眾多延伸模組與外掛程式集合,由組成 Kubernetes 社群的開發人員和公司所建立。具有一致性的 Kubernetes 服務可讓您充分利用這些社群供應項目,並新增安全性、監視及管理等功能。

遠於 Kubernetes

若要充分利用容器化的應用程式,您需要建置包含端對端開發、作業和安全性控制的 Kubernetes 平台。您部署更新會變得更快,卻依然保有安全性或可靠性,同時可節省管理基礎結構的時間。因此,當您採用 Kubernetes 時,請考慮實作下列事項:

使用 Kubernetes 與 DevOps 達成大規模的彈性

隨著容器、環境及運用這些容器與環境的團隊數量倍增,發行頻率也可能會隨著開發和作業的複雜度而增加。在 Kubernetes 環境中應用 DevOps,以實現高速、大規模的移動,並享有加強的安全性。

運用持續整合與持續部署 (CI/CD),以更快的速度傳遞程式碼

容器可提供一致的應用程式封裝格式,能簡化開發和營運團隊之間的共同作業,而 CI/CD 可以藉由自動執行這些工作加快從程式碼到容器和 Kubernetes 叢集的移動,幾分鐘內即可完成。

設定 Kubernetes 的 CI/CD

使用基礎結構即程式碼有效管理資源

基礎結構即程式碼可提升跨團隊計算資源的一致性和可見性,進而減少可能的人為錯誤。這種做法與 Helm 提供之 Kubernetes 應用程式的宣告式本質密切相關。這兩者截合起來,可讓您以可靠、可追踪和可重複的方式來定義應用程式、資源及設定。

使用 Terraform 部署 Kubernetes 叢集

透過常態監視來加速意見反應的傳遞

固定容器、頻繁發佈及抽象化的協調流程層會讓觀察更具挑戰性,甚至更重要。若要縮短 Bug 與修正之間的時間,您需要在容器健康狀態監視與集中式記錄等項目中完整檢視資源、叢集、Kubernetes API、容器和程式碼。該檢視有助於防範資源瓶頸與追蹤惡意要求,可讓您的 Kubernetes 應用程式保持良好狀態。

查看即時容器見解如何運作

利用 DevOps 保持速度與安全性之間的平衡

獲得作為 DevOps 工作流程一部分的內建即時觀察。自動套用合規性檢查和重新設定,保護您的組建和發行管線,以及您的 Kubernetes 應用程式。

讓安全性持續不斷運作

運用 Kubernetes 的範例 DevOps 工作流程

  1. 1在相同 Kubernetes 叢集中快速逐一查看、測試與偵錯應用程式的不同部分。
  2. 2將程式碼合併並簽入 GitHub 存放庫以進行持續整合。接著,將執行自動化組建與測試用為持續傳遞的一部分。
  3. 3驗證容器映像的來源和完整性。映像在通過掃描前會受到隔離。
  4. 4使用 Terraform 等工具佈建 Kubernetes 叢集。由 Terraform 安裝的 Helm 圖表,會定義所需的應用程式資源和設定狀態。
  5. 5實施原則以控管 Kubernetes 叢集的部署。
  6. 6發行管線會以每個程式碼自動執行預先定義的部署策略。
  7. 7將原則稽核與自動補救新增至 CI/CD 管線。例如,只有發行管線才有權在您的 Kubernetes 環境中建立新 Pod。
  8. 8啟用應用程式遙測、容器健康狀態監視與即時記錄分析。
  9. 9利用見解來解決問題,並通知下一個短期衝刺的計劃。

利用 Azure 的 Kubernetes 優勢

使用完全受控的 Microsoft Azure Kubernetes 服務 (AKS) 自動佈建、升級、監視及調整。無伺服器 Kubernetes 可提供您更簡單的開發到生產體驗,以及企業級的安全性與治理。

深入了解 AKS

Kubernetes 屬於社群

Kubernetes 是由成千上萬的個人和數百家公司為此專案貢獻智慧、程式碼和努力所建立,並持續茁壯成長。透過他們充滿熱誠的持續貢獻,為您的軟體取得成功。

35,000
參與者
180,000
認可
熱門專案
在 GitHub 中

開放原始碼軟體與企業承諾

為了方便組織採用 Kubernetes,以及讓開發人員更容易使用,Microsoft 在短短三年內就擴編了三倍員工來參與此開放原始碼專案。身為第三大企業參與者,Microsoft 將自己在 Kubernetes 社群中和不同客戶合作習得的知識與最佳做法整合到 Kubernetes,讓企業更容易接受及使用。

常見問題集 - Kubernetes

  • Kubernetes 與 Docker 合作。

    Docker 為封裝與分散容器化應用程式提供了開放標準。您可以使用 Docker 建置並執行容器,以及儲存並共用容器映像。

    Kubernetes 可協調並管理 Docker 建立的分散式容器化應用程式。此外還提供了在機器叢集上部署及執行這些應用程式所需的基礎結構。

    深入了解 Kubernetes 與Docker
  • Kubernetes 部署可讓您描述所需的應用程式部署狀態。Kubernetes 排程器可確保實際狀態與您期望的狀態相符,並在一或多個 Pod 損毀的情況下維持該狀態。Kubernetes 部署也可讓您在不停機的情況下持續升級應用程式。

    觀看此主題的完整討論
  • 使用 DevOps 部署到 Kubernetes 通常會涉及存放庫,例如用於版本管理的 Git。該存放庫會作為 CI/CD 管線的開端。根據您使用的方法,存放庫中的變更會觸發整合、建置、傳遞和部署活動。

    詳細了解 AKS 如何與 Azure DevOps 搭配運作
  • 在將應用程式移至雲端以簡化機器學習和 AI 挑戰的各種案例中,Kubernetes 十分有用。

    關鍵使用案例包括:

  • 請參閱由數千名使用 Azure 的技術專業人員與合作夥伴打造的最佳做法架構模式

  • 請遵循此精選旅程來開始學習 Kubernetes。

資源

隨時準備就緒 - 在 Azure 上免費試用 Kubernetes