容器化首部曲 - 什麼是Container和K8S

更新 發佈閱讀 7 分鐘
這篇分享希望能讓你了解

什麼Container、與Kubernetes和Docker是什麼關係,以及Kubernetes中又包含了哪些
組件?

1.Container – 容器化技術介紹
2.淺談Container / Docker / Kubernetes 三者關係
3.Kubernetes的四種組成元件

Container – 容器化技術介紹

Container在中文被稱為集裝箱或貨櫃,能夠裝載許多物品並便於運送,而這個概念延伸到資訊科技領域中被稱為容器,引申為將應用服務(Application)與其相依的資源封裝成輕量化的映像檔,使開發、維運團隊可輕易攜帶與搬遷。

註:相依性資源(Dependency):官方是以bins/libs稱之,也就是二進位執行檔
(binaries)與函數庫(libraries),它們可能是MySQL、Nodejs、.Net Framework、
程式庫、DLL、編譯器等運行App所需要的執行環境,相依性資源大抵上可以說是我們前面
提到的解決方案堆疊(solution stack)或軟體棧(software stack)。

現今在DevOps 與敏捷式開發的做法中,越來越廣泛地運用於AI與微服務應用的開發上。

vocus|新世代的創作平台

在虛擬架構中,為了增加硬體資源的利用率,在硬體層上建立一層虛擬化平台,並於平台中建立與運行多個虛擬機器(VM),彼此分離獨立並共享硬體資源。雖然透過虛擬化的作法可以大幅節省實體機器的數量與有效利用硬體資源,但由於虛擬機器是以作業系統(OS)為中心,每個虛擬機器都需要一個Guest OS的配置,因此會造成幾種問題:

  1. 佔據系統資源
    每個虛擬機器都需要使用底層硬體資源建立Guest OS,佔據記憶體與硬碟空間,並且還需要透過Hypervisor進行虛擬機器與底層資源的溝通
  2. 啟動時間漫長
    由於每個虛擬機器都需要安裝Guest OS,使得映像檔需涵蓋OS相關內容而過於肥大,因此建立和啟動時都會花費大量時間
  3. 機器搬遷瓶頸
    搬遷時需要考慮OS的版本與規格,增加搬遷困難度

因此相對傳統虛擬機器,容器化的目標是要改善虛擬機器因Guest OS所導致的問題,所以容器以應用程式為中心,透過Container Manager將應用程式所需要的環境(Environment)、執行檔(binaries)、函數庫(libraries)等相依資源進行打包封裝,並共用Host OS資源,如此一來省去Guest OS與Hypervisor的負擔,在啟動時間上就可以更加快速。

vocus|新世代的創作平台

但早在1982年就出現的容器化技術,為何在近十年才開始受到企業關注呢?原因在於早期容器化做法的門檻較高,且並無統一標準,直到2013年dotCloud這家公司釋出一套可將容器標準化的平台Docker,並受到各大科技巨頭的支持後,使Docker成為目前主流的容器標準。

淺談Container / Docker / Kubernetes 三者關係

在剛開始接觸容器化時,常看到有人講Container、有人講Docker,容易被專有名詞搞混,到底兩者有什麼差別? 而Kubernetes又是什麼,要如何理解這三個之間的關係,今天就來跟大家說明一下。

Container

容器化(Containerization)是一種連同硬體作業系統與運行服務做虛擬化的技術,讓運作在平台上的容器(Container)共享一個Host OS的資源,而容器是容器化技術具體化的一個實例(Instance),就像虛擬化技術所實踐出來的實例稱做為虛擬機一樣。

容器化側重在應用程式的開發、攜帶,封裝應用程式的相依資源與運行環境,強調輕量、快速與彈性;虛擬化則側重於硬體設備的整併與資源運用,強調資源利用率與高可用性。

vocus|新世代的創作平台

雖然容器化虛擬化在運作邏輯和側重重心完全不同,但我們還是可以藉由虛擬化的概念來理解容器化中的各個角色。

Docker

Docker是由dotCloud所發佈的一個容器標準化的開源平台,並以Docker為名成立新公司推廣,如同虛擬化需要有虛擬層一樣,在Hypervisor上運作虛擬機器,容器化也需要有一個平台可以運行容器與資源分配,稱為Docker Engine。

Docker可以將應用程式與其相依資源封裝成Docker映像檔,使其可被重複利用或移植於其他環境,同時提供Dockerfile記錄建立容器的每一步驟,只要有Docker Engine,就可以將Docker映像檔或Dockerfile轉換成容器。

vocus|新世代的創作平台
Kubernetes

Kubernetes是一個可以自動化部署與管理容器的工具,是由Google設計並開源系統。就像你可以透過VMware vCenter去部署與管理虛擬機器一樣,可以藉由Kubernetes達到大量容器的部署與調動,目前市面上包含SUSE的Rancher、Red Hat的OpenShift,以及VMware的Tanzu都是依循Kubernetes所開發出來的容器管理產品,而除了Kubernetes之外,也有其他的管理工具,包含Docker自家推出的Docker Swarm,以及Apache的Mesos。

vocus|新世代的創作平台

Kubernetes的四種組成元件

Kubernetes需要知道的四個基本的原件:Cluster 、Master Node、Worker Node、Pod

vocus|新世代的創作平台
  • Cluster
    叢集(Cluster)是大家較為熟悉的概念,一個叢集裡可以包含很多的節點(Nodes),例如你可以將三台伺服器組成一個叢集,在叢集裡可以做到資源共享、負載平衡與高可用性等等。


  • Master Node
    Master Node就像疫情指揮中心一樣,是一個負責發號施令與管理其他Worker Node的角色。


  • Worker Node
    Worker Node就像底下的執行單位一樣,負責處理各種大小事。


  • Pod
    Kubernetes最小運作單位,被包含在Worker Node之中,一個Pod對應一個應用服務,而Pod裡面包含一個或多個容器,這些容器共享資源與網路,並彼此透過localhost的Port進行溝通,由於Pod的資源有限,所以通常建議一個Pod只存在一個容器。
    每一個Pod都會有一個yaml設定檔,類似於身分證的概念,設定檔裡包含要部署在這個Pod的容器資訊。
留言
avatar-img
David | 資訊科技小學堂的沙龍
15會員
11內容數
分享關於我在資訊科技領域學習與成長的心得
2022/10/07
這篇分享希望能讓你了解 Microsoft Azure Associate(AZ-104)考試時間、題數與 形式,希望可以給予正在準備的你一些幫助 本篇會從三個面向來分享: 1. 考試範圍與流程 2. 我是如何自學與準備 3. 給正在準備的你一些建議
Thumbnail
2022/10/07
這篇分享希望能讓你了解 Microsoft Azure Associate(AZ-104)考試時間、題數與 形式,希望可以給予正在準備的你一些幫助 本篇會從三個面向來分享: 1. 考試範圍與流程 2. 我是如何自學與準備 3. 給正在準備的你一些建議
Thumbnail
2022/08/26
這篇分享希望能讓你了解 為何備份在企業中總是被稱為最後一道防線,而目前常見的備份方式又有哪些 本篇分享內容包含以下 1.為何需要備份 2.企業常見的幾種備份作法 3.備份作法比較 4.其他補充資訊
Thumbnail
2022/08/26
這篇分享希望能讓你了解 為何備份在企業中總是被稱為最後一道防線,而目前常見的備份方式又有哪些 本篇分享內容包含以下 1.為何需要備份 2.企業常見的幾種備份作法 3.備份作法比較 4.其他補充資訊
Thumbnail
2022/08/19
這篇分享希望能讓你了解 VMware 針對K8S應用所推出的新世代管理平台,如何解決維運與開發團隊在虛擬化和容器 環境中所面臨的挑戰與困境 本篇分享內容包含以下 1.前言 2.Tanzu介紹
Thumbnail
2022/08/19
這篇分享希望能讓你了解 VMware 針對K8S應用所推出的新世代管理平台,如何解決維運與開發團隊在虛擬化和容器 環境中所面臨的挑戰與困境 本篇分享內容包含以下 1.前言 2.Tanzu介紹
Thumbnail
看更多
你可能也想看
Thumbnail
本文介紹了 Docker 的基礎概念,以及在軟體工程環境中的運用。藉由 Docker 的容器化技術和映像檔技術,能夠實現開發和生產環境的一致性,並且支持負載平衡和無縫更新。此外,也提到了 Kubernetes 和 Docker Swarm 這兩個重要工具的用途和適用對象。
Thumbnail
本文介紹了 Docker 的基礎概念,以及在軟體工程環境中的運用。藉由 Docker 的容器化技術和映像檔技術,能夠實現開發和生產環境的一致性,並且支持負載平衡和無縫更新。此外,也提到了 Kubernetes 和 Docker Swarm 這兩個重要工具的用途和適用對象。
Thumbnail
這篇分享希望能讓你了解 什麼Container、與Kubernetes和Docker是什麼關係,以及Kubernetes中又包含了哪些 組件?
Thumbnail
這篇分享希望能讓你了解 什麼Container、與Kubernetes和Docker是什麼關係,以及Kubernetes中又包含了哪些 組件?
Thumbnail
Kubernetes是什麼? 1. Kubernetes是Google嚴格保密十幾年的秘密武器——Borg的一個開放原始碼版本。 2. Kubernetes是一個開放的開發平台。 3. Kubernetes是一個完備的分散式系統支撐平台。
Thumbnail
Kubernetes是什麼? 1. Kubernetes是Google嚴格保密十幾年的秘密武器——Borg的一個開放原始碼版本。 2. Kubernetes是一個開放的開發平台。 3. Kubernetes是一個完備的分散式系統支撐平台。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
在實際生產中,容器化技術開始走向「容器編排技術」,如:Kubernetes。因為Docker無法獨立支撐大規模容器化部署。 Kubernetes起源於Borg系統,所以在大規模的叢集管理,優於其他容器編排技術。它提供拉取映像檔、拉取執行容器、路由閘道、水平擴充、監控和備份等,除外還可以自動化處理容
Thumbnail
在實際生產中,容器化技術開始走向「容器編排技術」,如:Kubernetes。因為Docker無法獨立支撐大規模容器化部署。 Kubernetes起源於Borg系統,所以在大規模的叢集管理,優於其他容器編排技術。它提供拉取映像檔、拉取執行容器、路由閘道、水平擴充、監控和備份等,除外還可以自動化處理容
Thumbnail
講到Docker之前就必須先談談容器化, 容器化是一種軟體開發的方法, 將程式、依賴及組態封裝在映像檔之中, 那映像檔對於大部份的人來說一定非常的熟悉, 尤其是VM這個詞, 虛擬化技術的先行者, 有了這項技術之後, 我們就可以減少一些因為環境產生的問題導致難以排查程式錯誤的狀況, 甚至可以避免因為A
Thumbnail
講到Docker之前就必須先談談容器化, 容器化是一種軟體開發的方法, 將程式、依賴及組態封裝在映像檔之中, 那映像檔對於大部份的人來說一定非常的熟悉, 尤其是VM這個詞, 虛擬化技術的先行者, 有了這項技術之後, 我們就可以減少一些因為環境產生的問題導致難以排查程式錯誤的狀況, 甚至可以避免因為A
Thumbnail
圖片來自 Shine With Sapphire (本文譯自〈Docker for PHP Developers〉) Docker 和 Vagarant 有什麼不同? 如果在每個專案同時運行多個容器(container)的情況下 Docker 比 Vagrant 好在哪裡?會比用 Vagrant 同
Thumbnail
圖片來自 Shine With Sapphire (本文譯自〈Docker for PHP Developers〉) Docker 和 Vagarant 有什麼不同? 如果在每個專案同時運行多個容器(container)的情況下 Docker 比 Vagrant 好在哪裡?會比用 Vagrant 同
Thumbnail
為什麼要用Docker安裝? Docker是一個容器化平台, 就類似於我們早期虛擬機的VMWare、Virtual Box…等, 虛擬機平台一般, 只是面向的是伺服端, 供企業快速、簡單、輕量的佈署開發完成的程式軟體, 並將相關的環境依賴皆封裝成一包所謂的映像檔(image), 透過這樣的方式減少因
Thumbnail
為什麼要用Docker安裝? Docker是一個容器化平台, 就類似於我們早期虛擬機的VMWare、Virtual Box…等, 虛擬機平台一般, 只是面向的是伺服端, 供企業快速、簡單、輕量的佈署開發完成的程式軟體, 並將相關的環境依賴皆封裝成一包所謂的映像檔(image), 透過這樣的方式減少因
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
上篇我們在安裝 VirtualBox 練習使用虛擬化切割出獨立空間做開發,那除了使用 VM 達到虛擬化外,另一個輕量級的虛擬化技術 - 容器化。 要使用容器,那就不能不認識 Docker
Thumbnail
上篇我們在安裝 VirtualBox 練習使用虛擬化切割出獨立空間做開發,那除了使用 VM 達到虛擬化外,另一個輕量級的虛擬化技術 - 容器化。 要使用容器,那就不能不認識 Docker
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News