Kubernetes組件和架構(gòu)簡介
一.概念簡介
1.含義:
Kubernetes是google開源的容器編排工具,本質(zhì)是一組服務(wù)器集群,在集群的各個(gè)節(jié)點(diǎn)上運(yùn)行程序來進(jìn)行容器進(jìn)行管理,最終實(shí)現(xiàn)資源管理智能化、自動(dòng)化。
2.主要功能:
(1)新容器能夠迅速接替崩潰容器,自我修復(fù)能力強(qiáng)。
(2)靈活性強(qiáng),可以對(duì)運(yùn)行容器的數(shù)量進(jìn)行個(gè)性調(diào)整,也可以退回舊版本,支持橫向擴(kuò)容和整體遷移。
(3)可以自主去發(fā)現(xiàn)依賴的服務(wù)。
(4)多個(gè)容器啟動(dòng)時(shí),自動(dòng)實(shí)現(xiàn)處理請求的負(fù)載均衡。
(5)可創(chuàng)建存儲(chǔ)卷來根據(jù)需求對(duì)容器進(jìn)行存儲(chǔ)。
3.相關(guān)概念:
(1)master
集群控制節(jié)點(diǎn),至少需要一個(gè)master節(jié)點(diǎn)。
(2)node
工作負(fù)載節(jié)點(diǎn),是由master分配容器到node上,node上的docker在進(jìn)行運(yùn)行容器。
(3)pod
kubernetes的最小控制單元,容器運(yùn)行在其中,一個(gè)pod可以有1個(gè)或多個(gè)容器。
(4)label
通過對(duì)標(biāo)簽對(duì)pod進(jìn)行分類,同一類pod有相同標(biāo)簽。
(5)namespace
用來隔離pod的運(yùn)行環(huán)境。
二.組件和架構(gòu)介紹
1.master:集群的控制平面,管理集群
(1)ApiServer:資源操作的唯一入口,接收用戶輸入的命令,提供認(rèn)證、注冊等功能,可以通過REST調(diào)用、Kubectl命令行界面或者Kubeadm等來訪問。需要安裝某個(gè)服務(wù)時(shí),安裝請求會(huì)首先發(fā)送到master節(jié)點(diǎn)上的ApiServer。
(2)Scheduler:監(jiān)視來自ApiServer的新請求,進(jìn)行集群資源調(diào)度,按照策略將Pod調(diào)度到最適合的node節(jié)點(diǎn)上。安裝請求發(fā)送到ApiServer后右Scheduler進(jìn)行選擇(在etcd中獲取node節(jié)點(diǎn)性能等信息并通過算法進(jìn)行選擇)將服務(wù)安裝到哪個(gè)node節(jié)點(diǎn)。
(3)Controller-manager:維護(hù)集群狀態(tài),故障檢測等等。ApiServer調(diào)用Controller-manager來調(diào)度node節(jié)點(diǎn)去安裝這個(gè)服務(wù)。
(4)etcd:存儲(chǔ)集群中對(duì)象的信息(類似于數(shù)據(jù)庫)。在kubernetes啟動(dòng)后,master和node的信息都會(huì)存儲(chǔ)到這里。
2.node:集群的數(shù)據(jù)平面,為容器提供工作環(huán)境
(1)Kubelet:維護(hù)容器的生命周期,控制docker來對(duì)容器進(jìn)行創(chuàng)建刪除等操作。Kubelet接收到安裝指令后通知docker,由docker去啟動(dòng)用于這個(gè)服務(wù)的Pod,容器在此Pod中運(yùn)行。
(2)Kubeproxy:提供集群內(nèi)部的服務(wù)發(fā)現(xiàn)情況和負(fù)載調(diào)度。通過Kubeproxy對(duì)此服務(wù)進(jìn)行訪問。
(3)Docker:負(fù)責(zé)節(jié)點(diǎn)上的容器的相關(guān)操作
(4)其他組件
kube-dns:我整個(gè)集群提供dns服務(wù)
ingress controller:為服務(wù)提供外網(wǎng)入口
heapster:提供資源監(jiān)控
dashboard:提供GUI界面
fluentd-elasticsearch:集群日志采集、存儲(chǔ)和查詢
3.kubernetes簡單架構(gòu)圖解
到此這篇關(guān)于Kubernetes組件和架構(gòu)簡介的文章就介紹到這了,更多相關(guān)Kubernetes組件和架構(gòu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Kubernetes控制器中DaemonSet與Job的使用教程
這篇文章主要介紹了Kubernetes控制器中DaemonSet與Job的使用,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08Rainbond的ServiceMesh架構(gòu)組件端口沖突處理解決
這篇文章主要大家介紹了Rainbond?ServiceMesh架構(gòu)組件端口沖突處理方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04Kubernetes 1.28.2集群安裝過程中的關(guān)鍵步驟詳解(最新推薦)
Kubernetes K8s是Google開源的容器編排平臺(tái),最初由Borg項(xiàng)目發(fā)展而來,K8s 1.28版本引入了非正常節(jié)點(diǎn)關(guān)閉恢復(fù)、內(nèi)置Sidecar容器支持、Job優(yōu)化、Proxy改進(jìn)和調(diào)度框架優(yōu)化等功能,本文介紹Kubernetes 1.28.2集群安裝過程中的關(guān)鍵步驟,感興趣的朋友一起看看吧2025-03-03Linux安裝Kubernetes(k8s)超詳細(xì)教程
Kubernetes是一個(gè)輕便的和可擴(kuò)展的開源平臺(tái),用于管理容器化應(yīng)用和服務(wù),通過Kubernetes能夠進(jìn)行應(yīng)用的自動(dòng)化部署和擴(kuò)縮容,這篇文章主要給大家介紹了關(guān)于Linux安裝Kubernetes(k8s)的相關(guān)資料,需要的朋友可以參考下2024-07-07k8s編排之Deployment知識(shí)點(diǎn)詳解
這篇文章主要為大家介紹了k8s編排之Deployment知識(shí)點(diǎn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01k8s中如何實(shí)現(xiàn)pod自動(dòng)擴(kuò)縮容詳解
在實(shí)際生產(chǎn)系統(tǒng)中,經(jīng)常會(huì)遇到某個(gè)服務(wù)需要擴(kuò)容的場景,可能會(huì)遇到由于資源緊張或者工作負(fù)載降低而需要減少服務(wù)實(shí)例數(shù)量的場景,下面這篇文章主要給大家介紹了關(guān)于k8s中如何實(shí)現(xiàn)pod自動(dòng)擴(kuò)縮容的相關(guān)資料,需要的朋友可以參考下2022-08-08