自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

K8s 核心組件及運(yùn)行機(jī)制

云計(jì)算 云原生
一個 Kubernetes 集群由一組被稱作節(jié)點(diǎn)的機(jī)器組成。這些節(jié)點(diǎn)上運(yùn)行 Kubernetes所管理的容器化應(yīng)用。集群具有至少一個工作節(jié)點(diǎn)。

kubernetes核心組件及運(yùn)行機(jī)制

一個 Kubernetes 集群由一組被稱作節(jié)點(diǎn)的機(jī)器組成。這些節(jié)點(diǎn)上運(yùn)行 Kubernetes所管理的容器化應(yīng)用。集群具有至少一個工作節(jié)點(diǎn)。

工作節(jié)點(diǎn)托管作為應(yīng)用負(fù)載的組件的 Pod ??刂破矫婀芾砑褐械墓ぷ鞴?jié)點(diǎn)和 Pod 。為集群提供故障轉(zhuǎn)移和高可用性,這些控制平面一般跨多主機(jī)運(yùn)行,集群跨多個節(jié)點(diǎn)運(yùn)行。

k8s運(yùn)行機(jī)制

API server

API server 的核心功能是提供k8s各類資源對象(如Pod、RC、Service)的增刪改查及Watch等HTTP REST接口,成為集群內(nèi)各個功能模塊之間數(shù)據(jù)交互和通信的中心樞紐,是整個集群的數(shù)據(jù)總線和數(shù)據(jù)中心。 通常還具有以下功能。

  • 集群管理的API入口
  • 資源配額控制的入口
  • 提供了完備的集群安全機(jī)制。

通常我們會通過kubectl命令與API server進(jìn)行交互,提供restful API,所以說也可以通過代碼方式直接調(diào)用k8s的API server。

apiserver架構(gòu)圖

controller-manager

controller-manager 作為集群內(nèi)部的管理控制中心,負(fù)責(zé)集群內(nèi)部的Node、Pod、Endpoint、Namespace、ServiceAccount、ResourceQuota等的管理,意為控制器。

新版本replication controller 被ReplicaSet替代。

controller manager

從邏輯上講,每個控制器都是一個單獨(dú)的進(jìn)程, 但是為了降低復(fù)雜性,它們都被編譯到同一個可執(zhí)行文件,并在一個進(jìn)程中運(yùn)行。

每個controller通過API server 提供的接口實(shí)時監(jiān)控著集群里每個資源對象的狀態(tài),當(dāng)發(fā)生各種故障導(dǎo)致系統(tǒng)狀態(tài)發(fā)生變化,會嘗試著將系統(tǒng)從“現(xiàn)有狀態(tài)”修正到“期望狀態(tài)”。

以下為一些控制器的作用

  • 節(jié)點(diǎn)控制器(Node Controller): 負(fù)責(zé)在節(jié)點(diǎn)出現(xiàn)故障時進(jìn)行通知和響應(yīng) 。
  • 端點(diǎn)控制器(Endpoints Controller): 填充端點(diǎn)(Endpoints)對象(即加入 Service 與 Pod)。
  • 服務(wù)帳戶和令牌控制器(Service Account & Token Controllers): 為新的命名空間創(chuàng)建默認(rèn)帳戶和 API 訪問令牌。

scheduler

kube-scheduler意為調(diào)度器,在集群承擔(dān)了"承上啟下"的重要功能,“承上”指的是它負(fù)責(zé)接收 Controller -manager創(chuàng)建的新Pod。為其安排一個可以安置的node;“啟下”指的是安置完成之后,目前Node上的kubelet服務(wù)進(jìn)程接管后繼續(xù)工作,負(fù)責(zé)Pod生命周期中的下半生。

具體來說,Kubernetes Scheduler的作用是將待調(diào)度的Pod(API新創(chuàng)建的Pod、Controller Manager為補(bǔ)足副本而創(chuàng)建的Pod等)按照特定的調(diào)度算法和調(diào)度策略綁定(Binding)到集群中某個合適的Node上,并將綁定信息寫入etcd中。在整個調(diào)度過程中涉及三個對象,分別是待調(diào)度Pod列表、可用Node列表,以及調(diào)度算法和策略。簡單地說,就是通過調(diào)度算法調(diào)度為待調(diào)度Pod列表中的每個Pod從Node列表中選擇一個最適合的Node。

scheduler運(yùn)行機(jī)制

kubelet

一個在集群中每個節(jié)點(diǎn)(node)上運(yùn)行的代理。 它保證容器(containers)都 運(yùn)行在 Pod 中。

kubelet 接收一組通過各類機(jī)制提供給它的 PodSpecs,確保這些 PodSpecs 中描述的容器處于運(yùn)行狀態(tài)且健康。

kube-proxy

kube-proxy 是集群中每個節(jié)點(diǎn)上運(yùn)行的網(wǎng)絡(luò)代理, 實(shí)現(xiàn) Kubernetes 服務(wù)(Service) 概念的一部分。

kube-proxy 維護(hù)節(jié)點(diǎn)上的網(wǎng)絡(luò)規(guī)則。這些網(wǎng)絡(luò)規(guī)則允許從集群內(nèi)部或外部的網(wǎng)絡(luò)會話與 Pod 進(jìn)行網(wǎng)絡(luò)通信。

如果操作系統(tǒng)提供了數(shù)據(jù)包過濾層并可用的話,kube-proxy 會通過它來實(shí)現(xiàn)網(wǎng)絡(luò)規(guī)則。否則, kube-proxy 僅轉(zhuǎn)發(fā)流量本身

這里介紹一下 RC RSDeployment的區(qū)別

  • replicationController POD管理控制器 老版本使用
  • replicaset 新版本的POD控制器,替代RC 支持集合式的selector:(version in (v1.0, v2.0)或env notin (dev, qa))
  • Deployment 聲明式的pod部署方式 支持rolling update,Deployment為Pod和ReplicaSet提供聲明式更新。

你只需要在Deployment中描述你想要的目標(biāo)狀態(tài)是什么,Deployment controller就會幫你將Pod和Replica

Set的實(shí)際狀態(tài)改變到你的目標(biāo)狀態(tài)。你可以定義一個全新的Deployment,也可以創(chuàng)建一個新的替換舊的Deployment


責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2023-07-04 07:30:03

容器Pod組件

2015-11-20 11:20:54

js開發(fā)

2022-04-22 13:32:01

K8s容器引擎架構(gòu)

2021-03-11 12:31:33

K8sCoreDNSDNS服務(wù)器

2018-03-15 16:45:47

前端JavaScriptthis

2022-04-29 10:40:38

技術(shù)服務(wù)端K8s

2019-05-10 14:00:21

小程序運(yùn)行機(jī)制前端

2022-06-14 07:56:15

Kubernetes存儲架構(gòu)K8S

2023-06-06 08:14:18

核心Docker應(yīng)用程序

2009-02-03 14:00:20

PHP運(yùn)行PHP調(diào)用PHP原理

2009-12-11 10:52:37

PHP運(yùn)行機(jī)制

2023-11-06 07:16:22

WasmK8s模塊

2024-12-30 08:58:04

2024-05-27 00:00:10

KubernetesK8s云原生

2022-08-29 08:21:00

k8sDocker

2023-09-11 15:35:25

2010-02-01 17:19:30

C++運(yùn)行機(jī)制

2021-12-20 00:03:38

Webpack運(yùn)行機(jī)制

2019-08-15 10:17:16

Webpack運(yùn)行瀏覽器

2019-10-11 09:00:00

JavaScriptEvent Loop前端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號