1. 程式人生 > >淺入kubernetes(1):Kubernetes 入門基礎

淺入kubernetes(1):Kubernetes 入門基礎

[TOC] ## Introduction basic of kubernetes 我們要學習 Kubernetes Kubernetes ,就有首先了解 Kubernetes 的技術範圍、基礎理論知識庫等,要學習 Kubernetes,肯定要有入門過程,在這個過程中,學習要從易到難,先從基礎學習。 那麼 Kubernetes 的入門基礎內容(表示學習一門技術前先了解這門技術)包括哪些? 根據 Linux 開源基金會的認證考試,可以確認要了解 Kubernetes ,需要達成以下學習目標: - Discuss Kubernetes. - Learn the basic Kubernetes terminology. - Discuss the configuration tools. - Learn what community resources are available. 接下來筆者將一一介紹 Kubernetes 的一些概念(Discuss)、技術術語(Terminology)、相關配置工具以及社群開源資源(Community resources)。 本系列教程將會混雜一些英文,因為研究和使用 Kubernetes 的過程中,會接觸到大量英文,並且 Kubernetes 的國際認證考試,都是英文考試,多接觸一些英文單詞,慢慢積累吧。。。 本系列教程主要參考 Linux 開源基金會的課程內容及 Kubernetes 文件,課程內容按照 [Attribution 3.0 Unported (CC BY 3.0)](https://creativecommons.org/licenses/by/3.0) 協議,在寫作時參考、複製網站內容、共享知識庫等。關於 **CC BY 3.0** 協議,其說明如下: - **共享**—以任何媒介或格式複製和重新分發材料 - **適應**-重新混合,變換並在材料上構建 - 出於任何目的,甚至出於商業目的。 Linux 開源基金會認證考試與課程學習網址: [https://training.linuxfoundation.org/#](https://training.linuxfoundation.org/#) 使用條款: [https://www.linuxfoundation.org/terms/](https://www.linuxfoundation.org/terms/) 學習 Kubernetes 後,可以進一步考取以下認證證書: Kubernetes 管理員認證 (CKA)、Kubernetes 應用程式開發者認證 (CKAD)、Kubernetes安全專家認證 (CKS)。 ## What Is Kubernetes? 我們先思考一下,執行一個 Docker 容器,只需要使用 `docker run ...` 命令即可,這是相當簡單(relatibely simple)的方法。 但是,要實現以下場景,則是困難的: * 跨多臺主機的容器相互連線(connecting containers across multiple hosts) * 拓展容器(scaling containers) * 在不停機的情況下配置應用(deploying applications without downtime) * 在多個方面進行服務發現(service discovery among several aspects) 在 2008年,**LXC(Linux containers)** 釋出第一個版本,這是最初的容器版本;2013 年,Docker 推出了第一個版本;而 Google 則在 2014 年推出了 **LMCTFY**。 為了解決大叢集(Cluster)中容器部署、伸縮和管理的各種問題,出現了 Kubernetes、Docker Swarm 等軟體,稱為 **容器編排引擎**。 **Kubernetes 是什麼?** *"an open-source system for automating deployment, scaling, and management of containerized applications".* *“一個自動化部署、可拓展和管理容器應用的開源系統”* Google 的基礎設施在虛擬機器(Virtual machines)技術普及之前就已經達到了很大的規模,高效地(Efficiency)使用叢集和管理分散式應用成為 Google 挑戰的核心。而容器技術提供了一種高效打包叢集的解決方案。 多年來,Google 一直使用 Borg 來管理叢集中的容器,積累了大量的叢集管理經驗和運維軟體開發能力,Google 參考 Borg ,開發出了 Kubernetes,即 Borg 是 Kubernetes 的前身。(但是 Google 目前還是主要使用 Borg)。 Kubernetes 從一開始就通過一組基元(primitives)、強大的和可拓展的 API 應對這些挑戰,新增新物件和控制器地能力可以很容易地地址各種各樣的產品需求(production needs)。 因為 Kubernetes 這個單詞不好發音,而 k 和 s 之間有 8 個單詞,因此一般大家都讀 k 8 s。而專為小型嵌入式裝置開發的 K3S 的原單詞是?我不知道