iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0
DevOps

container & k8s 奏鳴曲系列 第 25

[13th][Day25] kubernetes & docker

為什麼會從 docker 聊到 k8s(kubernetes) 呢?
因為每個專案裡面一定有 dockerfile 啊(喂

比方說 ... 我寫了一個 http server,經由 docker 的協助 build 成執行檔,在 kubernetes 的機器中 run 起服務 by dockerfile ,並透過 kubernetes 的連線方式對外溝通,即完成一個簡單的 http server 服務

docker 跟 k8s 是互補的,應該說 docker 是一種 container 技術,在 k8s 內可以用 conatiner 來做啟動服務的一個單位

container 並不止 docker 一種,還有一些其他的 Containerization 工具,只不過 我學到的是 docker
要在 k8s 內 run 起服務也不一定要經由 container ,只不過 container 提供了一個較為方便的操作方式來啟動服務

在我的理解中,container 與 k8s 之間是合作關係。


在 k8s 中,service 是分散式叢集架構的核心,一個 service object,擁有以下幾個關鍵特性:

  1. 擁有一個唯一的指定名稱( ex: eric_try_httpserver );
  2. 擁有一個虛擬 ip (cluster IP、service IP、 VIP)以及連接埠 ;
  3. 能夠提供特定遠端服務能力
  4. 被對應到提供此服務功能的一組 container 應用上

service 的服務經由 socket 連線方式對外提供服務。

網路插座(英語:Network socket;又譯網路接套、網路介面、網路插槽)在計算機科學中是電腦網路中行程間資料串流的端點。使用以網際協定(Internet Protocol)為通訊基礎的網路插座,稱為網際插座(Internet socket)。因為網際協定的流行,現代絕大多數的網路插座,都是屬於網際插座。

比方說:mysql , redis , http_server ... 等

一個 service 經常是由多個相關的服務程式來提供服務,每個服務程式都有一個獨立的 endpoint(IP + port),k8s 能讓我透過 service (虛擬機器 ip + service port )連接到指令的 service 上。


上一篇
[13th][Day24] kubernetes 是什麼
下一篇
[13th][Day26] pod
系列文
container & k8s 奏鳴曲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言