k8s入門系列之介紹篇

2022-07-22 08:39:10 字數 3257 閱讀 9562

•kubernetes介紹

1.背景介紹

雲計算飛速發展

- iaas

- paas

- saas

docker技術突飛猛進

- 一次構建,到處執行

- 容器的快速輕量

- 完整的生態環境

2.什麼是kubernetes

kubernetes(k8s)是google開源的容器集群管理系統(谷歌內部:borg)。在docker技術的基礎上,為容器化的應用提供部署執行、資源排程、服務發現和動態伸縮等一系列完整功能,提高了大規模容器集群管理的便捷性。

kubernetes優勢:

- 容器編排

- 輕量級

- 開源

- 彈性伸縮

- 負載均衡

•kubernetes的核心概念

1.pod

執行於node節點上,若干相關容器的組合。pod內包含的容器執行在同一宿主機上,使用相同的網路命名空間、ip位址和埠,能夠通過localhost進行通。pod是kurbernetes進行建立、排程和管理的最小單位,它提供了比容器更高層次的抽象,使得部署和管理更加靈活。乙個pod可以包含乙個容器或者多個相關容器。

2.replication controller

replication controller用來管理pod的副本,保證集群中存在指定數量的pod副本。集群中副本的數量大於指定數量,則會停止指定數量之外的多餘容器數量,反之,則會啟動少於指定數量個數的容器,保證數量不變。replication controller是實現彈性伸縮、動態擴容和滾動公升級的核心。

3.service

service定義了pod的邏輯集合和訪問該集合的策略,是真實服務的抽象。service提供了乙個統一的服務訪問入口以及服務**和發現機制,使用者不需要了解後台pod是如何執行。

4.label

kubernetes中的任意api物件都是通過label進行標識,label的實質是一系列的k/v鍵值對。label是replication controller和service執行的基礎,二者通過label來進行關聯node上執行的pod。

5.node

node是kubernetes集群架構中執行pod的服務節點(亦叫agent或minion)。node是kubernetes集群操作的單元,用來承載被分配pod的執行,是pod執行的宿主機。

•kubernetes架構和元件

架構:

主從分布式架構,master/node

- 服務分組,小集群,多集群

- 服務分組,大集群,單集群

元件:kubernetes master控制項,排程管理整個系統(集群),包含如下元件:

1.kubernetes api server

作為kubernetes系統的入口,其封裝了核心物件的增刪改查操作,以restful api介面方式提供給外部客戶和內部元件呼叫。維護的rest物件持久化到etcd中儲存。

2.kubernetes scheduler

為新建立的pod進行節點(node)選擇(即分配機器),負責集群的資源排程。元件抽離,可以方便替換成其他排程器。

3.kubernetes controller

負責執行各種控制器,目前已經提供了很多控制器來保證kubernetes的正常執行。

- replication controller

管理維護replication controller,關聯replication controller和pod,保證replication controller定義的副本數量與實際執行pod數量一致。

- node controller

管理維護node,定期檢查node的健康狀態,標識出(失效|未失效)的node節點。

- namespace controller

管理維護namespace,定期清理無效的namespace,包括namesapce下的api物件,比如pod、service等。

- service controller

管理維護service,提供負載以及服務**。

- endpoints controller

管理維護endpoints,關聯service和pod,建立endpoints為service的後端,當pod發生變化時,實時更新endpoints。

- service account controller

管理維護service account,為每個namespace建立預設的service account,同時為service account建立service account secret。

- persistent volume controller

管理維護persistent volume和persistent volume claim,為新的persistent volume claim分配persistent volume進行繫結,為釋放的persistent volume執行清理**。

- daemon set controller

管理維護daemon set,負責建立daemon pod,保證指定的node上正常的執行daemon pod。

- deployment controller

管理維護deployment,關聯deployment和replication controller,保證執行指定數量的pod。當deployment更新時,控制實現replication controller和 pod的更新。

- job controller

管理維護job,為jod建立一次性任務pod,保證完成job指定完成的任務數目

- pod autoscaler controller

實現pod的自動伸縮,定時獲取監控資料,進行策略匹配,當滿足條件時執行pod的伸縮動作。

kubernetes node執行節點,執行管理業務容器,包含如下元件:

1.kubelet

負責管控容器,kubelet會從kubernetes api server接收pod的建立請求,啟動和停止容器,監控容器執行狀態並匯報給kubernetes api server。

2.kubernetes proxy

負責為pod建立**服務,kubernetes proxy會從kubernetes api server獲取所有的service資訊,並根據service的資訊建立**服務,實現service到pod的請求路由和**,從而實現kubernetes層級的虛擬**網路。

3.docker

node上需要執行容器服務。

k8s入門系列之介紹篇

kubernetes介紹 1.背景介紹 雲計算飛速發展 iaas paas saas docker技術突飛猛進 一次構建,到處執行 容器的快速輕量 完整的生態環境 2.什麼是kubernetes kubernetes k8s 是google開源的容器集群管理系統 谷歌內部 borg 在docker技...

k8s入門系列之介紹篇

kubernetes介紹 1.背景介紹 雲計算飛速發展 iaas paas saas docker技術突飛猛進 一次構建,到處執行 容器的快速輕量 完整的生態環境 2.什麼是kubernetes kubernetes k8s 是google開源的容器集群管理系統 谷歌內部 borg 在docker技...

k8s入門系列之介紹篇

kubernetes介紹 1.背景介紹 雲計算飛速發展 iaas paas saas docker技術突飛猛進 一次構建,到處執行 容器的快速輕量 完整的生態環境 2.什麼是kubernetes kubernetes k8s 是google開源的容器集群管理系統 谷歌內部 borg 在docker技...