是什么?
Kubernetes是一個開源容器管理工具,負(fù)責(zé)容器部署,容器擴(kuò)縮容以及負(fù)載平衡。作為Google的創(chuàng)意之作,它提供了出色的社區(qū),并與所有云提供商合作。因此,我們可以說Kubernetes不是一個容器化平臺,而是一個多容器管理解決方案。
眾所周知,Docker提供容器的生命周期管理,Docker鏡像構(gòu)建運(yùn)行時容器。但是,由于這些單獨(dú)的容器必須通信,因此使用Kubernetes。因此,我們說Docker構(gòu)建容器,這些容器通過Kubernetes相互通信。因此,可以使用Kubernetes手動關(guān)聯(lián)和編排在多個主機(jī)上運(yùn)行的容器。
有哪些特性?
1. 自我修復(fù): 在節(jié)點(diǎn)故障時可以刪除失效容器,重新創(chuàng)建新的容器,替換和重新部署,保證預(yù)期的副本數(shù)量,kill掉健康檢查失敗的容器,并且在容器未準(zhǔn)備好之前不會處理客戶端情況,確保線上服務(wù)不會中斷
2. 彈性伸縮: 使用命令、UI或者k8s基于cpu使用情況自動快速擴(kuò)容和縮容應(yīng)用程序?qū)嵗?,保證應(yīng)用業(yè)務(wù)高峰并發(fā)時的高可用性,業(yè)務(wù)低峰時回收資源,以最小成本運(yùn)行服務(wù)
3. 自動部署和回滾: k8s采用滾動更新策略更新應(yīng)用,一次更新一個pod,而不是同時刪除所有pod,如果更新過程中出現(xiàn)問題,將回滾恢復(fù),確保升級不影響業(yè)務(wù)
4. 服務(wù)發(fā)現(xiàn)和負(fù)載均衡: k8s為多個容器提供一個統(tǒng)一訪問入口(內(nèi)部IP地址和一個dns名稱)并且負(fù)載均衡關(guān)聯(lián)的所有容器,使得用戶無需考慮容器IP問題
5. 機(jī)密和配置管理: 管理機(jī)密數(shù)據(jù)和應(yīng)用程序配置,而不需要把敏感數(shù)據(jù)暴露在徑向力,提高敏感數(shù)據(jù)安全性,并可以將一些常用的配置存儲在k8s中,方便應(yīng)用程序調(diào)用
6. 存儲編排: 掛載外部存儲系統(tǒng),無論時來自本地存儲、公有云(aws)、還是網(wǎng)絡(luò)存儲(nfs、GFS、ceph),都作為集群資源的一部分使用,極大提高存儲使用靈活性
7. 批處理: 提供一次性任務(wù),定時任務(wù):滿足批量數(shù)據(jù)處理和分析的場景