iT邦幫忙

2024 iThome 鐵人賽

DAY 4
0

在了解相關背景知識後,我們進入到 Kubernetes 的章節!

What is Kubernetes?

a

Figure Source

Kubernetes 是一個開源的容器管理工具,它可以用於自動化

  1. 容器的部署
  2. 容器擴展、縮減
  3. 容器中的負載平衡

最初是由 Google 使用 Golang 開發,後來是給 CNCF(Cloud Native Computing Foundation)管理。

Kubernetes 可以將「n」個容器分組為一個邏輯單位,以便輕鬆管理和部署。

它能夠與所有雲端服務提供商(如公共雲、混合雲和內部部署)出色地協同工作。

How to deploy and manage application with Kubernetes?

首先,我們必須安裝 Kubernetes 並設置 Kubernetes 集群。

至少需要一個主節點和兩個工作節點。

我們可以在任何提供 Kubernetes 作為服務的雲端平台上設置 Kubernetes 集群。

之後,我們必須部署清單文件,包括:

  1. 所需的 pod 數量
  2. container image
  3. 所需的資源類型

完成編寫清單文件後,使用 kubectl 透過該文件部屬 pods。

在完成建立 pods 後,我們可能需要將服務公開到外部。

因此,我們需要再編寫一個清單文件,包含:

  1. 服務類型(LoadBalancer / ClusterIP / ...)
  2. ports
  3. selectors

Feature of Kubernetes

  1. Automated Scheduling:
    Kubernetes 提供排程工具來啟動 clusters node 上面的 container
  2. Self-Healing Capabilities:
    對於失效的 container,Kubernetes 會透過重新排程、替換或是重啟 container 來應對
  3. Horizontal Scaling and Load Balancing:
    Kubernetes 會針對當前使用需求進行擴展或縮減
  4. Resource Utilization:
    Kubernetes 會針對資源使用進行監控,確保 container 資源能夠被高效使用
  5. Support for multiple clouds and hybrid clouds:
    Kubernetes 可以部屬在不同雲端平台上,並可在多個雲端運行容器化應用程式

至此有個疑問,Docker 跟 Kubernetes 差在哪裡?

Kubernetes vs Docker

Docker 更多地專注於單個容器的運行和管理。

而 Kubernetes 則提供了容器集群的全面管理和編排功能。

通常,Docker 用於容器的建立和運行,Kubernetes 用於管理和協調這些容器。

以下提供幾個 feature 比較兩者用來管理和容器編排工具

功能 Kubernetes Docker (Docker Swarm)
自動擴展
負載均衡 自動 手動配置
滾動更新 直接對容器進行 對 Pods 整體進行
儲存 與其他容器共享 在同一 Pods 內的多個容器之間

上一篇
[Day 3] Distributed system / Restful API / yaml
下一篇
[Day 5] Get start with Kubernetes
系列文
關於新手會想知道Kubernetes的幾件事情12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言