●kubernetes是google在2023年開源的乙個容器集群管理系統,kubernetes簡稱k8s。
●k8s用於容器化應用程式的部署,擴充套件和管理。
●k8s提供了容器編排,資源排程(k8s排程演算法頻繁問),彈性伸縮,部署管理,服務發現等一系列功能。
●kubernetes目標是讓部署容器化應用簡單高效。
官方**:
docker初期架構1: mesos+馬拉松
docker初期架構2:swarm docker官方原生
3: kubernetesk8s站起來了
●自我修復
在節點故障時重新啟動失敗的容器,替換和重新部署,保證預期的副本數量;殺死健康檢查失敗的容器,並且在未準備好之前不會處理客戶端請求,確保線上服務不中斷。
●彈性伸縮
使用命令、ul或者基於cpu使用情況自動快速擴容和縮容應用程式例項,保證應用業務高峰併發時的高可用性;業務低峰時**資源,以最小成本執行服務。
●自動部署和回滾
k8s採用滾動更新策略更新應用,一次更新乙個pod,而不是同時刪除所有pod,如果更新過程**現問題,將回滾更改,確保公升級不受影響業務。
●服務發現和負載均衡
k8s為多個容器提供乙個統一訪問入口(內部ip位址和乙個dns名稱),並且負載均衡關聯的所有容器,使得使用者無需考慮容器ip問題。(ip會變,只能對子網範圍規劃)
●機密和配置管理(使用者的機密和服務的配置)資料做密文處理,對人為來說是密文,在平台裡會64解碼,機密存的密文,配置項是明文。
管理機密資料和應用程式配置,而不需要把敏感資料暴露在映象(壓縮包)裡,提高敏感資料安全性。並可以將一些常用的配置儲存在k8s中,方便應用程式使用。
●儲存編排(可用外部儲存裝置,類似資料卷,資料卷容器,掛載即可)
掛載外部儲存系統,無論是來自本地儲存,公有雲( 如aws),還是網路儲存( 如nfs、glusterfs、 ceph) 都作為集群資源的一部分使用, 極大提高儲存使用靈活性。
●批處理(關聯自動部署)
提供一次性任務,定時任務;滿足批量資料處理和分析的場景。
生產環境不是監控到資源匱乏才反應,提前往下設閾值75%。因為規則觸發時間很慢。
解釋:自我修復 銷毀掉重新建立容器(沒有重啟一說)
三個節點內容一致,自我修復才有意義(否則獨一無二性 修復無意義)
無狀態化服務 可用自我修復
有狀態化服務 (有主有從身份,啟動順序也有先後,否則不能同步) 自我修復沒意義
彈性伸縮:需要檢查控制器資源,控制器的副本資源還在(實則刪除又建立了副本)
容器更新:先建立,再更新,保證副本資源不低於3(下圖) 回滾:先建立在,再刪除,
add概念:藍綠部署:先阻塞右區,更新右區,流量放到左端,然後就是右端(滾動更新:訪問老版本和新版本,新舊版本都會被分配)兩個人都不停機,但藍綠部署都訪問的新版本(也叫金絲雀部署)
總結:master上有三核心元件:api server,scheduler排程,controller-manager控制器,etcd屬於資料庫(換其他資料庫也行,不算)。api server和etcd進行互動,節點中kubelet代替apiserver進行操作,代替下達指令,管理節點資源,節點資源通過kube-proxy提供服務讓外面訪問。k8s管理的最基本單是pod,pod中執行多個容器。add:乙個master主節點和後面的單節點上都有乙個etcd。master控制節點管理資源,node節點提供服務。
add:排程器壞了仍然可以建立資源
排程服務可以繞過排程器建立資源(指定性分配1.需要scheduler2.指定ip)
2.kubelet兩個作用 1.傳達指令 2.證書建立申(kubeconfig定義證書各種資訊)
輔助理解圖
kubernetes集群架構與元件
●kube-apiserver
kubernetes api,集群的統一入口, 各元件協調者,以restful api提供介面服
務,所有物件資源的增刪改查和監聽操作都交給apiserver處理後再提交給etcd
儲存。●kube-controller-manager
處理集群中常規後台任務,乙個資源對應乙個控制器,而controllermanager就是負責管理這些控制器的。
●kube-scheduler
根據排程演算法為新建立的pod選擇乙個node節點, 可以任意部署,可以部署在同乙個節點上,也可以部署在不同的節點上。
●etcd
分布式鍵值儲存系統。用於儲存集群狀態資料,比如pod、service等物件資訊。
etcd當掉,不會影響pod執行,但看不見pod資訊,不能建立管理資源。
入門了解K8S
1 k8s,就是基於容器的集群管理平台,它的全稱,是kubernetes。kubernetes 是什麼?kubernetes 這個詞 於希臘語,有主管 舵手 船長的意思,我們從中能聽到一絲管理的意味,從圖示中也能看出來。乙個k8s系統,通常稱為乙個k8s集群 cluster 這個集群主要包括兩個部分...
K8S 操作總結
例如yaml中kind deployment 則應通過下面方法擴充套件 kubectl scale replicas 3 deployment foo 或者直接通過建立資源的yaml檔案擴充套件 kubectl scale replicas 3 f foo.yaml 將由 foo.yaml 配置檔案...
什麼是k8s,了解k8s各個元件的功能
什麼是kubernetes?kubernetes k8s 是自動化容器操作的開源平台,這些操作包括部署,排程和節點集群間擴充套件。如果你曾經用過docker容器技術部署容器,那麼可以將docker看成kubernetes內部使用的低級別元件。kubernetes不僅僅支援docker,還支援rock...