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

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

目錄

Kubernetes 入門基礎

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) 協議,在寫作時參考、複製網站內容、共享知識庫等。關於 CC BY 3.0 協議,其說明如下:

  • 共享—以任何媒介或格式複製和重新分發材料
  • 適應-重新混合,變換並在材料上構建
  • 出於任何目的,甚至出於商業目的。

Linux 開源基金會認證考試與課程學習網址:

https://training.linuxfoundation.org/#

使用條款:

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 的原單詞是?我不知道