kubernetes簡介

kubernetes簡介

1,kubernetes是什么?

kubernetes是容器集群管理系統(tǒng),是一個開源的平臺,可以實(shí)現(xiàn)容器集群的自動化部署,自動擴(kuò)容縮,維護(hù)等功能,
特點(diǎn):
可移植:支持公有云,私有云,混合云,多重云(multi-cloud)
可擴(kuò)展:模塊化,插件化,可掛載,可組合
自動化:自動部署,自動重啟,自動復(fù)制,自動伸縮擴(kuò)展
kubernetes是Google2014年創(chuàng)建管理的,是Google十多年大規(guī)模容器管理技術(shù)Borg的開源版本
容器優(yōu)勢總結(jié):
1,快速創(chuàng)建/部署應(yīng)用:與MV虛擬化相比,容器鏡像的創(chuàng)建更加容易
2,持續(xù)開發(fā),集成和部署:提供可靠且頻繁的容器鏡像構(gòu)建/和部署,并使用快速簡單的回滾
3,開發(fā)和運(yùn)行相分離:在bulid或者release階段創(chuàng)建容器鏡像,使得是應(yīng)用和基礎(chǔ)設(shè)施解耦
4,開發(fā),測試和生產(chǎn)環(huán)境一致性:在本地或者外網(wǎng)(生產(chǎn)環(huán)境)運(yùn)行的一致
5,云平臺或者其他操作系統(tǒng):Ubuntu,RHEL,CoreOS,on-prem Google container Engine 或者其他任何環(huán)境中運(yùn)行
6,Loosely coupled,分布式,彈性,微服務(wù)化:應(yīng)用程序分為更小的,獨(dú)立的部件,可以動態(tài)部署和管理
7,資源隔離
8,資源利用率:更高效

kubernetes組件

Master組件

1,kube-apiserver
kube-apiserver用于暴露kubernetes API。任何的資源請求/調(diào)用操作都是通過kube-apiserver提供的接口進(jìn)行的。
2,ETCD
etcd是kubernetes提供的默認(rèn)的存儲系統(tǒng),是保存所有集群數(shù)據(jù),使用時需要為etcd數(shù)據(jù)提供備份計(jì)劃
3,kube-controller-manager
kube-controller-manager運(yùn)行管理控制器,他們是集群中處理常規(guī)任務(wù)的后臺線程,邏輯上,每個控制器是單獨(dú)的線程,單位了降低復(fù)雜性,他們都被編譯成了單個的二進(jìn)制文件并在單個進(jìn)程中運(yùn)行
這些控制器包括:
節(jié)點(diǎn)控制器(node)
副本節(jié)點(diǎn)控制器(Replication):負(fù)責(zé)維護(hù)統(tǒng)中每個副本中的pod
端點(diǎn)控制器(Endpoints):填充Endpoints對象(連接service&&pods)
Servive Account和token控制器:為新的Namespace創(chuàng)建默認(rèn)賬戶訪問API token
4,kube-scheduler
kubr-scheduler監(jiān)視新創(chuàng)建沒有分配到Node的pod,為pod選擇一個Node
5,插件addons
插件(addon)是實(shí)現(xiàn)集群pod和service功能的,Pod有Deployment,ReplicationController等進(jìn)行管理的Namespace插件對象是在kube-system Namespace中創(chuàng)建的。

Node節(jié)點(diǎn)組件

節(jié)點(diǎn)組件運(yùn)行在Node,提供kubernetes運(yùn)行環(huán)境時以及維護(hù)pod
1,kubelet
kubelet是主要的代理的節(jié)點(diǎn),它會監(jiān)視已分配給節(jié)點(diǎn)的pod,具體功能:
1,安裝pod所需要的volume
2,下載pod的secrets
3,pod中運(yùn)行的docker容器
4,定期執(zhí)行容器健康檢查
5,通過在必要時創(chuàng)建鏡像pod,將pod的狀態(tài)報(bào)告給系統(tǒng)的其他部分
6,向系統(tǒng)的其他部分報(bào)告節(jié)點(diǎn)的狀態(tài)
2,kube-proxy
官方介紹:https://kubernetes.io/docs/reference/command-line-tools-reference/kube-proxy/
kube-proxy是是通過在主機(jī)上維護(hù)網(wǎng)絡(luò)規(guī)則并執(zhí)行連接轉(zhuǎn)發(fā)來實(shí)現(xiàn)kubernetes服務(wù)抽象
Kubernetes網(wǎng)絡(luò)代理在每個節(jié)點(diǎn)上運(yùn)行。這反映了每個節(jié)點(diǎn)上Kubernetes API中定義的服務(wù),并且可以在一組后端上執(zhí)行簡單的TCP,UDP和SCTP流轉(zhuǎn)發(fā)或循環(huán)TCP,UDP和SCTP轉(zhuǎn)發(fā)。當(dāng)前可通過與Docker鏈接兼容的環(huán)境變量找到服務(wù)集群的IP和端口,這些環(huán)境變量指定了服務(wù)代理打開的端口。有一個可選的插件,可以為這些群集IP提供群集DNS。用戶必須使用apiserver API創(chuàng)建服務(wù)才能配置代理。
3,docker
docker是用于運(yùn)行容器

了解kubernetes對象

kubernetes對象是kubernetes系統(tǒng)中的持久實(shí)體,kubernetes使用這些實(shí)體來表示集群的狀態(tài)。具體來說可以描述:
1,容器化應(yīng)用正在運(yùn)行(以及在哪些節(jié)點(diǎn)上)
2,這些應(yīng)用的可用資源
3,關(guān)于這些應(yīng)用是如何運(yùn)行的策略如重新策略,升級和錯容

對象(object)和規(guī)范狀態(tài)

每個kukbernetes對象都包含兩個嵌套對象字段,用于管理object的配置:object spec和object status。spec描述了對象所需的狀態(tài),希望object具有的特征,status描述了對象的實(shí)際狀態(tài),并由kubernetes系統(tǒng)提供和更新

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在實(shí)踐之前,必須先學(xué)習(xí)k8s的幾個重要概念,它們是組成k8s集群的基石。 1. Cluster Cluster是計(jì)...
    wangfs閱讀 954評論 0 0
  • Kubernetes 簡介 導(dǎo)讀:Kubernetes(K8s)是開源的,用于管理云平臺中多個主機(jī)上的容器化的應(yīng)用...
    陽光男孩剛哥哥閱讀 886評論 0 0
  • 架構(gòu)模型為master/nodes(work) 可以理解master為蜂后,nodes為工蜂(干活的) maste...
    別玩游戲知道嗎閱讀 495評論 0 0
  • 簡單理解,kubernetes是一個開源的容器管理系統(tǒng),用于管理云平臺中多個主機(jī)上的容器化的應(yīng)用。 Kuberne...
    busy_living閱讀 372評論 0 0
  • 什么是Kubernetes kubernetes的簡稱K8S(k和s之間有8個字母),是Google團(tuán)隊(duì)發(fā)起并維護(hù)...
    不知不覺已經(jīng)閱讀 305評論 0 0

友情鏈接更多精彩內(nèi)容