一、Kubernetes概述
- Kubernetes(簡稱K8s)是谷歌在2014年開源的容器化集群管理系統(tǒng)
- 使用K8s進行容器化應用部署
- 使用K8s利于應用擴展
- K8s目標實施讓部署容器化應用更加簡潔和高效
二、Kubernetes特性
(1)自動裝箱
基于容器對應用運行環(huán)境的資源配置要求自動部署應用容器
(2)自我修復(自愈能力)
當容器失敗時,會對容器進行重啟
當所部署的Node節(jié)點有問題時,會對容器進行重新部署和重新調(diào)度
當容器未通過監(jiān)控檢查時,會關閉此容器直到容器正常運行時,才會對外提供服務
(3)服務發(fā)現(xiàn)
用戶不需要使用額外的服務發(fā)現(xiàn)機制,就能夠基于K8s自身能力實現(xiàn)服務發(fā)現(xiàn)和負載均衡
(4)滾動更新
可以根據(jù)應用的變化,對應用容器運行的應用,進行一次或批量式更新
(5)版本回退
可以根據(jù)應用部署情況,對應用容器運行的應用,進行歷史版本及時回退
**(6)密鑰和配置管理
在不需要重新構建鏡像的情況下,可以部署和更新密鑰和應用配置,類似熱部署
(7)存儲編排
自動實現(xiàn)存儲系統(tǒng)掛載及應用,特別對有狀態(tài)應用實現(xiàn)數(shù)據(jù)持久化非常重要
存儲系統(tǒng)可以來自于本地目錄、網(wǎng)絡存儲(NFS、Gluster、Ceph)等、公共云存儲服務
(8)批處理
提供一次性任務,定時任務,滿足批量數(shù)據(jù)處理和分析的場景
三、Kubernetes集群架構組件

K8s架構圖
-
Master組件
(1)kube-apiserver
集群統(tǒng)一入口,以Restful方式,交給etcd存儲
(2)Scheduler
對工作節(jié)點進行調(diào)度,選擇Node節(jié)點應用部署
(3)controller-manager
處理集群中常規(guī)后臺任務,一個資源對應一個控制器
(4)etcd
存儲系統(tǒng),用于保存集群相關的數(shù)據(jù) -
Node組件
(1)kubelet
相當于Master派出的Node節(jié)點代表,管理本機容器
(2)proxy
提供網(wǎng)絡代理、負載均衡等操作
四、Kubernetes核心概念
- Pod
(1)最小部署單元
(2)一組容器的集合
(3)共享網(wǎng)絡
(4)生命周期是短暫的 - Controller
(1)確保預期的Pod副本數(shù)量
(2)無狀態(tài)、有狀態(tài)應用部署
(3)確保所有的Node運行同一個Pod
(4)一次性任務和定時任務 - Service
定義一組Pod的訪問規(guī)則