iT邦幫忙

2024 iThome 鐵人賽

DAY 1
1

前言

這系列基本上是以一個新手的觀點去筆記關於 Kubernetes 的知識

在進入到 Kubernetes 之前

我會以幾個先輩知識來理解在理解 Kubernetes 前需要理解的技術

包括

  • Container / Docker / Podman
  • Distributed system
  • REST API
  • Yaml file

接著我們會進入到 Kubernetes Tutorial


Container

在部屬一個應用時,速度跟便利性是極為重要的

傳統使用 virtual machine (VM) 或是實體機器跟現今使用 container 比較有幾個明顯的差異

VM Container
任意環境執行或建立 需要特定的虛擬機器管理程式(如 VMware、Hyper-V)來執行 可以在任意環境中執行
獨立的空間資源 包含完整的操作系統和應用程式/共享相同的虛擬機器管理程式 有獨立的空間和資源,彼此相互獨立/使用共用的操作系統核心
管理方便 較為複雜 透過簡單的命令和配置
資源精簡 包含完整的操作系統 僅包含應用程式和必要的依賴

在管理 container 方面,可以透過 Container Runtime Interface(如 Docker、containerd)管理

https://ithelp.ithome.com.tw/upload/images/20240801/20152821fmqy1Wf4al.png

Figure Source

Docker

在 container 的世界中,Docker 是一個開源的容器化平台,我們可以透過 Docker 將應用程式容器化

Docker 包含以下幾個重要元件

  1. Dockerfile: 用來建立 Docker Image 的文件,裡頭包括建立 Docker Image 的指令
  2. Docker Engine: 在 Docker 的平台中,我們用它來建立 container 和管理 container
  3. Docker Image: 唯讀檔,用來建立 container 的方式,包含相關應用的程式跟相關依賴
  4. Docker Hub: 一個透過雲端建立的儲存庫,用來分享和找尋相關 Docker Image
  5. Docker Registry: 用來儲存 Docker Image 的分散式系統

以及幾個管理 Docker 名稱

  • Docker Client: 提供命令界面 (CLI),讓使用者可以透過其介面對 Docker 進行操作
  • Docker Daemon: 監聽 Docker API 請求 / 管理 Docker
  • Docker Host: 一個環境使其可以運行相關應用程式

https://ithelp.ithome.com.tw/upload/images/20240801/20152821UHCg2sy60t.png

Figure Source

Podman

Podman 相對 Docker 的差別在於它沒有像 Docker Daemon 管理 container 的程序

優點是 Podman 相對安全,我們不需要依賴單一個程序來管理 container

在 Podman,它是使用 CLI 和 libpod library 來管理 container

libpod 提供用來管理 container 和 cluster 等相關資源的 API

缺點就是管理起來會較為困難

而由於 Podman 沒有 Daemon,它是使用 systemd 來啟動或管理 container

在建立 container 方面,Podman 使用 Buildah

而遷移 container 方面,Podman 使用 Skopeo

Reference


下一篇
[Day 2] More about container
系列文
關於新手會想知道Kubernetes的幾件事情30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
凱文大叔
iT邦新手 4 級 ‧ 2024-08-02 17:33:25

標題打錯字Padman -> Podman

whoami iT邦新手 1 級 ‧ 2024-08-02 17:39:58 檢舉

感謝提醒!

我要留言

立即登入留言