iT邦幫忙

2021 iThome 鐵人賽

DAY 1
0
DevOps

調皮的容器就是要好好管理 - Kubernetes系列 第 1

[Day 01] 聊聊 Kubernetes 是什麼?

前言

Kubernetes (k8s) 是一個開源平台,可進行自動部署、擴展和管理的「容器化(containerized)應用程式」,用於管理容器化工作負載和服務,並且支援不同的容器工具,其中以Docker最廣為人知。容器 (container)提供虛擬化的空間,裝載應用程式以及對應的資源環境,不需要OS,Container會相較起來更加輕型並且能在數秒啟,在現今微服務 (Micro Services) 架構的快速發展下,使得開發上使用技術更為自由,擴展性和靈活性更好,並降低了程式碼耦合度滿足單一原則,使每個獨立出得服務能更專注在個別的功能上。本次挑戰選擇 Kubernetes (k8s) 是因為他能讓管理容器更簡潔方便也有龐大的社群能夠彼此討論解決問題。


未來30天挑戰規劃

本次挑戰是希望能夠分享一些Kubernetes的基本觀念以及實務上該如何操作並解決問題,從環境的建置到實際的操作使用,搭配套件工具進行輔助讓實作能更為方便流暢,最後總結前面所學的內容來加深記憶提高學習成效,我們把這次挑戰的目標分為以下幾個方向來介紹:

  • Kubernetes介紹 & 環境建置
  • 實務操作 & 基礎打底
  • 使用套件 & 工具輔助學習
  • Kubernetes 整合管理調皮的容器

文章連結


什麼是 Kubernetes

k8s圖片

Source: https://www.fansysoft.com/blogs/-/asset_publisher/CWuRKonAWio8/blog/kubernetes

Kubernetes 是一種開放程式碼解決方案,主要特徵有:

  • 平台負載平衡和擴充
  • 自動部署
  • 多元儲存介面
  • 高可用性管理介面

負載平衡和擴充

在Kubernetes cluster中,主要以管理節點(Master Node)和工作節點(work node)組成。當資源需求增加(CPU、RAM……),而叢集執行運算的資源不足時,維運人員能夠透過設定或撰寫yaml檔的方式自動擴充節點,Kubernetes 同時也可以使用負載平衡的功能,在網路上分散流量以維持穩定性。

自動部署

可以使用K8s描述container的所需數目和狀態,將指定數目的容器部署至指定的主機,並讓它們以期望的狀態執行。例如,撰寫yaml檔來自動化K8s建立新的container,或刪除現有container並轉移所有資源到新的container。

多元儲存介面

基礎架構是與儲存器軟體分開的。有了儲存器,所有作業都會虛擬化至作業系統層次。並根據需求為容器裝載持續性的本端或雲端儲存設備。這代表,不管應用程式在哪裡執行都能以同樣的方式運作,現今大部分儲存器已在 Kubernetes 平台上執行。

高可用性管理介面

當容器發生故障時,Kubernetes 可以自動重新啟動或自動更換;它還可以關閉不符合您性能檢查需求的容器。。而管理節點的核心元件中,Etcd最為重要。Etcd儲存了叢集中每個節點的網路配置及狀態訊息,而部分訊息是偷過複數個Etcd服務進行投票取得,故Etcd服務數量(即Master節點數量)須為單數。

k8s相關概念:

Docker 雖然是最常用的儲存器技術,不過 Kubernetes 也支援其他技術。Docker 定義的範本可將軟體封包成標準化單元,內含執行應用程式的所有元素。Kubernetes 則會編排儲存器環境,同時優化伺服器用量和空間。它會使用智慧型排程、負載平衡、可擴充性、儲存管理及批次執行等特性,來管理儲存器的部署位置與方式。

Kubernetes 叢集由主要節點和工作者節點組成。(節點是儲存器所執行的主機或伺服器,它可以是虛擬機器或實體機器。),基本的 Kubernetes 管理單元就是儲存器 Pod儲存器群組。同一個Pod裡的容器共享同一個網絡命名空間,可以使用localhost互相通信。Pod是短暫的,不是持續性實體。

主要節點會管理儲存器工作負載,並引導跨系統間的通訊。其中包含一個排程器,可控制效能、容量和可用性。
工作者節點則是依主要節點的引導來執行 Pod。配置檔可讓團隊指定作業參數,例如可以一次執行的 Pod 數目。使用 Kubernetes,就能像在單一系統般管理整個資料中心的資源。

結論

相信看完上述對於k8s的介紹,多少能夠更加了解容器應用及使用k8s的重要性和優點,之後的29天也會一步步帶著各位更深入了解k8s並且應用在實務面,讓我們繼續努力下去吧!

參考資料

Kubernetes在夯什麼—K8S基礎介紹
IBM Cloud 學習中心 何謂 Kubernetes?


下一篇
[Day 02] 為什麼要用 Kubernetes?
系列文
調皮的容器就是要好好管理 - Kubernetes5
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言