第一節(jié) K8S的基礎(chǔ)概念
Node
可以理解為一個物理機(jī)或者虛擬機(jī) ,K8S中的一個節(jié)點 ,每個節(jié)點包含Pod 所需的服務(wù), 這些節(jié)點 是由 Control Plane 來管理, 節(jié)點的名稱 用來標(biāo)識Node 對象,名稱必須是唯一的. Node上有三個組件分別是 kubelet ,kube-proxy,container-runtime .
kubelet 負(fù)責(zé)管理和維護(hù)每個節(jié)點上的Pod,并確保他們按照預(yù)期運行. kubelet 是在每個節(jié)點上運行的主要 “節(jié)點代理” 它可以使用以下方式之一向 API 服務(wù)器注冊:
- 主機(jī)名(hostname)
- 覆蓋主機(jī)名的參數(shù)
- 特定于某云驅(qū)動的邏輯
kubelet 是基于 PodSpec 來工作的。每個 PodSpec 是一個描述 Pod 的 YAML 或 JSON 對象。 kubelet 接受通過各種機(jī)制(主要是通過 apiserver)提供的一組 PodSpec,并確保這些 PodSpec 中描述的容器處于運行狀態(tài)且運行狀況良好。 kubelet 不管理不是由 Kubernetes 創(chuàng)建的容器。
容器運行時 , 有很多種, 比如 docker-engine , containerd , CRI-O 等
控制平面(Control Plane)是指容器編排層,它暴露 API 和接口來定義、 部署容器和管理容器的生命周期。
Pod
是kubernetes 的最小調(diào)度單元, 他是 一個或多個容器的組合 . 一般只有一個容器,可以理解為容器的抽象.一個 Pod 可以包含一個或多個緊密關(guān)聯(lián)的容器, 它們共享相同的網(wǎng)絡(luò)命名空間、 IP 地址和存儲卷, 并在同一個宿主上運行。
Service
是將運行在一個或一組 Pod 上的網(wǎng)絡(luò)應(yīng)用程序公開為網(wǎng)絡(luò)服務(wù)的方法。
Ingress 是對集群中服務(wù)的外部訪問進(jìn)行管理的 API 對象, 典型的訪問方式是 HTTP。 可以通過Ingress資源來配置不同的轉(zhuǎn)發(fā)規(guī)則, 從而達(dá)到根據(jù)不同的規(guī)則設(shè)置訪問集群內(nèi)不同的Service所對應(yīng)的后端Pod。
命名空間 ( namespace) 提供一種機(jī)制, 將同一集群中的資源劃分為相互隔離的組, 以便進(jìn)行分類、 篩選和管理。同一命名空間內(nèi)的資源名稱要唯一, 但跨命名空間時沒有這個要求。
ConfigMap , Secret 可以把外部信息 ,敏感信息 存起來. 更新這些配置會比較方便. 避免配置變更重新編譯和部署的問題.
Volumes 可以將數(shù)據(jù)掛載到集群中本地磁盤和遠(yuǎn)程存儲上, 做數(shù)據(jù)持久化使用的.
Deployment 組件 來管理無狀態(tài)的組件, 可以將一個或多個Pod 組合在一起, 副本控制, 滾動更新, 動態(tài)擴(kuò)縮容等 等.
StatefulSet 組件 來管理 有狀態(tài)的組件 (mysql ,緩存,消息隊列等)文章來源:http://www.zghlxwxcb.cn/news/detail-814420.html
對于有狀態(tài)的應(yīng)用程序, 可以單獨部署, 從 K8S 集群中剝離出來, 單獨部署.文章來源地址http://www.zghlxwxcb.cn/news/detail-814420.html
到了這里,關(guān)于第一節(jié) K8S的基礎(chǔ)概念的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!