Kubernetes系列二:Kubernetes對象模型

      網(wǎng)友投稿 621 2022-05-29

      在之前的文章已經(jīng)講到了很多Kubernets對象,包括pod,service,deployment等等。Kubernets對象是一種持久化,表示集群狀態(tài)的實(shí)體。它是一種聲明式的意圖的記錄,一般使用yaml文件描述對象,它使用Kubernetes對象來表示集群的狀態(tài),通過API/kubectl管理Kubernetes對象。

      1?? name和uid

      在Kubernetes對象模型中,使用了name和uid作為對象的唯一標(biāo)識,其中name在同一種對象中是唯一的,在不同類型對象可以是相同的;uid是唯一標(biāo)識的。

      在API中對象的訪問路徑:/api/{version}/namespaces/{namespaxe/{object-kind}/name,比如:/api/v1/namespace/default/pods/hello-kubernetes

      在Kubernetes集群的整個生命周期內(nèi)創(chuàng)建的每個對象實(shí)例都具有不同的UID.

      Kubernetes系列二:Kubernetes對象模型

      2?? Namespace(名字空間)

      Namesapce,不僅僅是一個屬性,本身也是一個object。

      §? Namesapce:用于將物理集群劃分為多個虛擬集群。

      §? Namespace間完全隔離,因此也常被用來隔離不同的用戶以及權(quán)限。

      §? Kubernetes內(nèi)置了三個Namesapces:default、kube-system和kube-public,Node和PersistentVolume不屬于任何namespace。

      3?? Label(標(biāo)簽)

      Label用于建立集群對象之間的靈活、松耦合的多維關(guān)聯(lián)關(guān)系。

      §? 一個label是一個鍵-值對,其中的key、value均由用戶自己定義。

      §? lable可以附著在任何對象上,每個對象也可以有任意個標(biāo)簽。標(biāo)簽可在對象定義時附加上,也可以通過命令動態(tài)管理標(biāo)簽。

      §? label可以將有組織目的的結(jié)構(gòu)映射到集群對象上,從而形成一個與現(xiàn)實(shí)世界管理結(jié)構(gòu)同步對應(yīng)松耦合的、多維的對象管理結(jié)構(gòu)。

      通過lable selector 查詢和篩選建立對象間的關(guān)系的。

      如上圖所示,有兩個service1和 service2,對應(yīng)的pod有標(biāo)簽release:stable和標(biāo)簽release:rc-1,通過selector,就可以篩選出相應(yīng)的標(biāo)簽的pod。而pod由通過nodeselector篩選出不同環(huán)境的node。

      4?? Annotations

      Annotations:可以將任意非標(biāo)識性元數(shù)據(jù)附加到對象上。

      §? Annotations也是以鍵值對的形式呈現(xiàn)。

      §? 工具和庫可以檢索并使用這些Annotations元數(shù)據(jù)

      §? 將數(shù)據(jù)作為Annotations附著在對象上,有利于創(chuàng)建一些用于部署、管理和做內(nèi)部檢查的共享工具和客戶端。

      5?? Kubernetes對象分類

      常用的對象分類有以下幾種:

      §? workload類,即工作負(fù)載類

      o?? pod

      o?? controller

      o?? deployment

      o?? stateful

      o?? daemonset

      o?? job

      §? discovery&loadbalance類,與服務(wù)相關(guān)的對象

      o?? service

      o?? endpoint

      o?? ingress

      §? config&storage,向應(yīng)用初始化配置話信息

      §? configmap

      §? secret

      §? volume

      §? persistentVolumeClaim

      §? cluster,集群類對象

      §? Node

      §? namespace

      §? persitenceVolume

      §? clusterRole

      §? ClusterRoleVindeing

      §? ResoruceQuota

      6?? 工作負(fù)載,以pod為中心

      pod是一個有特定關(guān)系的容器集合。

      §? Pod是集群中可以創(chuàng)建和部署的最小且最簡單的Kubernetes對象的單元。

      §? Pod也是一種封裝。它封裝了應(yīng)用容器,存儲資源、獨(dú)立的網(wǎng)絡(luò)IP以及決定容器如何運(yùn)行的策略選項(xiàng)。

      §? 每個pod中預(yù)置了一個Pause容器,其namespace、IPC資源、網(wǎng)絡(luò)和存儲資源被pod內(nèi)其它容器共享。Pod中的所有容器緊密協(xié)作,并且作為一個整體被管理、調(diào)度和運(yùn)行。

      pod的生命周期

      pod是一個非持久化實(shí)體。

      如圖所示,pod有如下幾個生命周期:

      §? pending,即掛起,即pod對象已經(jīng)被kubernetes所接受,但有一個或者多個pod尚未創(chuàng)建。

      §? running,運(yùn)行中,pod已經(jīng)綁定到node上,所有pod中所有容器已經(jīng)創(chuàng)建

      §? succeed,成功狀態(tài),pod的所有的容器已經(jīng)成功終止。

      §? failed,失敗狀態(tài),即有最少又一個容器正常退出。

      7?? service

      pod是一個非持久化的實(shí)體,pod隨時都有可能被銷毀掉或者重新創(chuàng)建,所以pod的所在節(jié)點(diǎn)是不確定的,為了防止因pod的提供服務(wù)不確定性而采用了地址唯一的service用來提供服務(wù),service可以通過負(fù)載均衡的調(diào)用它背后的pod對象,從而提供穩(wěn)定的服務(wù)。

      servie是與云原生應(yīng)用中“微服務(wù)”概念一一對應(yīng)。

      §? kubernetes集群為每一個service分配一個集群唯一的IP地址,在 service的生命周期內(nèi),該ip地址不變;在內(nèi)部DNS指出下,輕松實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)機(jī)制。

      §? service通過label selector關(guān)聯(lián)到實(shí)際支撐業(yè)務(wù)運(yùn)行的pod上,并通過集群內(nèi)置的服務(wù)負(fù)載均衡分發(fā)到后端pod上。

      §? 通過nodeport或者設(shè)置loadbalance機(jī)制實(shí)現(xiàn)集群外部對service的訪問。

      8?? controllers

      controller是kubernetes的核心對象之一。

      §? controller用于保證集群內(nèi)一組pod能始終按照某種期望的狀態(tài)正常運(yùn)行

      §? 狀態(tài)包括:Pod副本數(shù)量、節(jié)點(diǎn)選擇、資源約束、持久化數(shù)據(jù)運(yùn)維等

      §? kubernetes支持多種controller,常用的deployment、replicaseet、statefulset、daemonset等。

      9?? ReplicaSet

      ReplicaSet:確保健康Pod的副本始終滿足用戶定義的數(shù)量。

      §? 前身是ReplicationController()rc

      §? 相比rc,增加了集合式label selector的支持。

      §? 支持單獨(dú)使用,但更多隱藏在Deployment控制器后面,由deployment自動管理。

      10 Deployment

      Deployment:為pod和 ReplicaSet提供聲明式的定義。

      §? 用戶在deployment文件中描述期望狀態(tài),Deployment Controller就會自動將Pod和Replica Set的實(shí)際狀態(tài)改變到期望狀態(tài)。

      §? Deployment支持Pod的滾動更新,并自動管理背后的ReplicaSet

      §? Deployment支持將Pod滾動到任意版本。

      11 StatefulSet

      StatefulSet:提供對有狀態(tài)應(yīng)用的部署和控制的支持,1.9版本GA,正式畢業(yè)。可以用于生產(chǎn)環(huán)境中。

      §? 使用場景:文檔的持久化存儲,穩(wěn)定的網(wǎng)絡(luò)標(biāo)志,有序部署有序擴(kuò)展,有序收縮有序刪除,有序自動滾動升級等。

      §? Pod的存儲必須由PersistentVolume Provisioner根據(jù)請求的Storage Class 進(jìn)行配置,或由管理員預(yù)先配置好。

      §? 考慮數(shù)據(jù)安全性,伸縮或刪除StatefulSey不會刪除關(guān)聯(lián)的存儲;另外StartefulSet目前要求Headless Service 負(fù)責(zé)Pod的網(wǎng)絡(luò)身份,用戶有責(zé)任創(chuàng)建此服務(wù)。

      12 DaemonSet

      保證在每個Node上都運(yùn)行一個Pod副本。

      §? 適用于系統(tǒng)Daemon程序、系統(tǒng)跟蹤、日志收集等

      §? Kubernetes1.6之后,可設(shè)置更新策略:支持滾動更新

      §? 可指定Node:nodeSelector、nodeAffinity、podAffinity

      13 ConfigMap

      常用來向pod提供非敏感的配置信息。

      §? ConfigMap用于保存配置數(shù)據(jù)的鍵值對,可以用來保存單個,也可以用來保存配置文件。

      §? ConfigMap可以使用命令行基于字面值、文件或者目錄來創(chuàng)建或者通過configmap對象定義文件創(chuàng)建。

      §? ConfigMap可以通過三種形式在pod中使用:環(huán)境變量、容器命令行參數(shù)貨以文件形式通過數(shù)據(jù)卷插件掛載到pod中。

      14 Secret

      secret解決的事集群內(nèi)密碼、token、密鑰等敏感數(shù)據(jù)的配置問題。

      §? 常用于與ServiceAccount關(guān)聯(lián),存儲在tmpfs文件系統(tǒng)中,Pod刪除后sercret文件也會對應(yīng)刪除

      §? 支持opaque,kubernetes.io/Service Account,kubernetes.io/dockerconfigjson三種類型。

      15 總結(jié)

      本文主要對Kubernetes的對象模型進(jìn)行一個初略的講解。后續(xù)文章會對重點(diǎn)對象模型進(jìn)行一個詳細(xì)的講解或者實(shí)戰(zhàn)的演示。

      Kubernetes

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:掌握了Tomcat的架構(gòu)設(shè)計,Tomcat就很容易了
      下一篇:Xilinx? 7 series FPGAs CLBs專題介紹(一)
      相關(guān)文章
      亚洲精品成人区在线观看| 亚洲一区二区三区在线| 亚洲熟女乱色一区二区三区| 亚洲视频日韩视频| 亚洲国产精品特色大片观看完整版| 中文字幕中韩乱码亚洲大片| 亚洲国产精品一区二区第一页免 | 亚洲日韩精品无码专区 | 亚洲国产成人影院播放| 色偷偷亚洲第一综合网| 337P日本欧洲亚洲大胆精品| 亚洲国产精品自在自线观看| 亚洲av无码一区二区三区四区| 亚洲AV无码一区二区三区性色 | 亚洲av无码片在线播放| 亚洲国产精品国自产拍AV| 久久久影院亚洲精品| 亚洲色图在线观看| 亚洲视频在线观看网站| 亚洲天堂电影在线观看| 亚洲首页国产精品丝袜| 亚洲精品无码久久久久久| 最新亚洲人成无码网www电影| 国产午夜亚洲精品不卡| 亚洲AV成人潮喷综合网| 国产精品亚洲二区在线观看| 亚洲色欲久久久综合网东京热| 亚洲成a人片77777kkkk| 亚洲自偷精品视频自拍| 亚洲91精品麻豆国产系列在线| 亚洲国产美女精品久久久| 亚洲Aⅴ无码一区二区二三区软件| 亚洲伊人成无码综合网 | 亚洲色精品vr一区二区三区| 亚洲国产精品无码av| 亚洲精品国产专区91在线| 国产成人精品日本亚洲专| 亚洲av成人一区二区三区观看在线 | 综合亚洲伊人午夜网 | 亚洲综合av一区二区三区不卡 | 国产成人亚洲影院在线观看|