iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0

前幾天介紹了Docker,今天要來講比Docker更可怕的更火的東西--Kubernetes

簡介

Kubernetes,又名K8s,因為Kubernetes從k到s之間有八個英文字母,是由Google設計的開源專案,其主要功能為管理容器、自動化服務部屬與擴張等多項強大功能。

短短幾個字真的很難描述他的強大,不過看到容器管理,應該不難想像他跟Docker的關聯吧。
Docker 是負責把Imager運行成Container,所以Docker 是一種 Container Runtime,而K8s則是用來管理Container的系統,提供多項強大的功能來部署這些Container。

接下來我也就最基本的開始介紹

其組成主要可以分為三個原件分別為Container、Pod、Node。
Container:與介紹Docker時的意義一樣,是我們將程式碼與相關環境打包後運行的Process。
Pod:為k8s部屬的最小單位,一個Pod可以想像成一個Application,一個Pod內可以包含多個container,拿我前面的例子,我的完整應用(Application)就包含了Spring-boot專案(container)與Postgres資料庫(contatiner)
Node:節點,主要分為主節點(Controller Plan、或者會看到Master Node)與子節點(Woker Node),可以想像主節點是負責分派工作,子節點是負責工作的。
https://ithelp.ithome.com.tw/upload/images/20230828/20139136hVo3dG2a1s.png

在主節點與子節點內都各自有屬於自己的組件,大致如下
Control Plane:

  • kube-apiserver: 資源操作的入口點,提供認證、授權、訪問控制、API註冊等機制。
  • etcd: 鍵值儲存區 (key-value storage),用來儲存叢集的狀態。
  • kube-controller-manager: 負責維護集群的狀態,比如故障檢測、自動擴展等。
  • kube-scheduler: 負責資源的分配,按照設定的調度策略分配 Pod 到對應的機器上。
    Worker Node:
  • kubelet: 負責維護容器的生命周期,其中還包括對應apiserver的接口,會接收apiserver傳來的指令並根據指令運行。
  • Container Runtime: k8s預設是使用Docker,負責鏡像管理以及 Pod 和容器的真正運行。
  • kube-proxy: 負責節點上的網路的規則,如:Service 提供 cluster 內部的服務的連接和負載平衡。

有這些名詞的概念之後在使用時也會更加得心應手,可以多多複習,對k8s就會越來越熟悉喔。


上一篇
Docker Compose 啟動多個Image
下一篇
K8s 安裝
系列文
帶著MBP在異世界探險的科技宅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言